このページでは

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)

ボックスシャドウlhsrhs と異なる場合はtrue を返し、そうでない場合はfalse を返す。

operator==()も参照

QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)

与えられたshadow を与えられたstream に書き込み、stream への参照を返します。

Qt データ型のシリアライズも参照してください

[noexcept] bool operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)

ボックスシャドウlhsrhs と等しければ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.