QCanvasBoxShadow Class
QCanvasBoxShadow は、矩形の影/グローを描くためのブラシです。詳細...
| ヘッダー | #include <QCanvasBoxShadow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 以来: | Qt 6.11 |
| を継承しています: | QCanvasBrush |
| ステータス | 技術プレビュー |
パブリック関数
| QCanvasBoxShadow() | |
| QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black) | |
| QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black) | |
| float | blur() const |
| float | bottomLeftRadius() const |
| float | bottomRightRadius() const |
| QRectF | boundingRect() const |
| QColor | color() const |
| float | radius() const |
| QRectF | rect() const |
| void | setBlur(float blur) |
| void | setBottomLeftRadius(float radius) |
| void | setBottomRightRadius(float radius) |
| void | setColor(const QColor &color) |
| void | setRadius(float radius) |
| void | setRect(float x, float y, float width, float height) |
| void | setRect(const QRectF &rect) |
| void | setSpread(float spread) |
| void | setTopLeftRadius(float radius) |
| void | setTopRightRadius(float radius) |
| float | spread() const |
| float | topLeftRadius() const |
| float | topRightRadius() const |
関連する非メンバー
| bool | operator!=(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow) |
| bool | operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QCanvasBoxShadow &shadow) |
詳細説明
QCanvasBoxShadow は、ぼかしを適用した丸みを帯びた矩形ブラシです。QCanvasBoxShadow のパフォーマンスは、SDF アプローチを使用しているため、どのような形状のアイテムでもぼかした影/輝きを作成する一般的な影よりもはるかに優れています。
QCanvasBoxShadow の機能は、半径、広がり、ぼかし、色の値など、CSS のボックス シャドウに似ています。レンダリング出力も CSS ボックス シャドウに似ていますが、QCanvasBoxShadow を可能な限り高性能にするために、いくつかの顕著な違いがあります。ぼかしは、CSS ボックスシャドウ実装でよく使用されるガウスぼかしではなく、シェーダ内で数学的に計算されます。このため、特にぼかし量がシャドウの幅/高さの半分より大きくなると、シャドウの外観がわずかに異なります。
以下は、Chrome ブラウザで QCanvasBoxShadow と CSS ボックス シャドウのレンダリング出力を比較したスクリーンショットです。0 ピクセル、10 ピクセル、20 ピクセル、40 ピクセルのぼかし半径が小さいシャドウにどのように影響するかを示しています。
CSS ボックス シャドウ:

QCanvasBoxShadow:

メンバー関数ドキュメント
QCanvasBoxShadow::QCanvasBoxShadow()
デフォルトのボックスシャドウを作成します。ボックスシャドウの位置は (0, 0)、サイズは (100, 100)。影の角の半径は0.0 で、ぼかしは0.0 です。影の色はQt::black です。
QCanvasBoxShadow::QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
ボックスシャドウを構築します。ボックスシャドウの位置とサイズはrect で定義されます。影コーナーの半径はradius で、ぼかしはblur です。影の色はcolor です。
QCanvasBoxShadow::QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
ボックスシャドウを構築する。ボックスシャドウの位置はx,y で、サイズはwidth,height です。影の角の半径はradius で、ぼかしはblur です。影の色はcolor です。
float QCanvasBoxShadow::blur() const
シャドーボックスのぼかしを返します。
setBlur()も参照 。
float QCanvasBoxShadow::bottomLeftRadius() const
シャドーボックスの左下の半径を返します。こ れを-1 と す る と 、 影の描画は こ の隅に対 し てradius() の値を用います。デフォルト値は-1 です。
setBottomLeftRadius()も参照してください 。
float QCanvasBoxShadow::bottomRightRadius() const
シャドーボックスの右下半径を返します。こ れが-1 の と き 、 影の描画は こ の隅に対 し てradius() の値を用います。デフォルト値は-1 です。
setBottomRightRadius()も参照してください 。
QRectF QCanvasBoxShadow::boundingRect() const
影に覆われた領域を返す。これは、影rect(),blur(),spread() を考慮したものです。QCanvasPainter::drawBoxShadow() ヘルパーメソッドを使用したくない場合は、 このメソッドを使用して、たとえば正しいサイズのQCanvasPainter::rect() をパスに追加することができます。
setRect(),setBlur(),setSpread()も参照 。
QColor QCanvasBoxShadow::color() const
シャドーボックスの色を返します。
setColor()も参照 。
float QCanvasBoxShadow::radius() const
シャドーボックスの半径を返します。
setRadius()も参照 。
QRectF QCanvasBoxShadow::rect() const
シャドーボックスの矩形領域を返します。
setRect()も参照 。
void QCanvasBoxShadow::setBlur(float blur)
影のぼかしをピクセル単位でblur に設定します。デフォルト値は0.0 で、ぼかしなしを意味します。
blur()も参照 。
void QCanvasBoxShadow::setBottomLeftRadius(float radius)
左下隅の半径をradius に設定します。 デフォルト値は-1 で、これはこの隅に個別の半径が設定されていないことを意味し、代わりに共通のradius() が使われます。
bottomLeftRadius()も参照してください 。
void QCanvasBoxShadow::setBottomRightRadius(float radius)
右下隅の半径をradius に設定します。 デフォルト値は-1 で、これはこの隅に個別の半径が設定されていないことを意味し、代わりに共通のradius() が使われます。
bottomRightRadius()も参照してください 。
void QCanvasBoxShadow::setColor(const QColor &color)
影の色をcolor に設定します。 デフ ォル ト 値は黒で、 完全不透明です。
color()も参照してください 。
void QCanvasBoxShadow::setRadius(float radius)
影の角の半径をピクセル単位でradius に設定します。デフォルト値は0.0 で、半径なしを意味します。
radius()も参照して ください。
void QCanvasBoxShadow::setRect(float x, float y, float width, float height)
シャドーボックスの矩形領域を (x,y,width,height) に設定します。
rect()も参照してください 。
void QCanvasBoxShadow::setRect(const QRectF &rect)
シャドーボックスの矩形領域をrect に設定する。
これはオーバーロードされた関数です。
void QCanvasBoxShadow::setSpread(float spread)
影の広がりをピクセル単位でspread に設定します。デフォルト値は0.0 で、広がりはありません。
spread()も参照 。
void QCanvasBoxShadow::setTopLeftRadius(float radius)
左上隅の半径をradius に設定します。 デフォルト値は-1 で、これはこの隅に個別の半径が設定されていないことを意味し、代わりに共通のradius() が使われます。
topLeftRadius()も参照してください 。
void QCanvasBoxShadow::setTopRightRadius(float radius)
右上隅の半径をradius に設定します。 デフォルト値は-1 で、これはこの隅に個別の半径が設定されていないことを意味し、代わりに共通のradius() が使われます。
topRightRadius()も参照してください 。
float QCanvasBoxShadow::spread() const
シャドーボックスの広がりを返す。
setSpread()も参照 。
float QCanvasBoxShadow::topLeftRadius() const
シャドーボックスの左上の半径を返します。こ れを-1 と す る と 、 影の描画は こ の隅に対 し てradius() の値を用います。デフォルト値は-1 です。
setTopLeftRadius()も参照してください 。
float QCanvasBoxShadow::topRightRadius() const
シャドーボックスの右上の半径を返します。こ れが-1 の と き、 影の描画は こ の隅に対 し てradius() の値を用います。デフォルト値は-1 です。
setTopRightRadius()も参照してください 。
関連する非会員
[noexcept] bool operator!=(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
ボックスシャドウlhs がrhs と異なる場合はtrue を返し、そうでない場合はfalse を返す。
operator==()も参照 。
QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)
与えられたshadow を与えられたstream に書き込み、stream への参照を返します。
Qt データ型のシリアライズも参照してください 。
[noexcept] bool operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
ボックスシャドウlhs がrhs と等しければtrue を返し、そうでなければfalse を返す。
operator!=()も参照 。
QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)
与えられたstream から与えられたshadow を読み込み、stream への参照を返します。
Qt データ型のシリアライズも参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.