QCanvasGradient Class
QCanvasGradient は、すべてのQCanvasPainter のグラデーションブラシの基底クラスです。詳細...
| ヘッダー: | #include <QCanvasGradient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 以下より: | Qt 6.11 |
| 継承元: | QCanvasBoxGradient、QCanvasConicalGradient 、QCanvasLinearGradient 、およびQCanvasRadialGradient |
パブリック関数
| QCanvasGradient() | |
(since 6.12) void | addColorStop(qreal position, QColor color) |
| QColor | endColor() const |
| void | setColorAt(qreal position, QColor color) |
| void | setEndColor(QColor color) |
(since 6.12) void | setImage(const QCanvasImage &image, int index = 0) |
| void | setStartColor(QColor color) |
| void | setStops(const QCanvasGradientStops &stops) |
| QColor | startColor() const |
| QCanvasGradientStops | stops() const |
| QCanvasBrush::BrushType | type() const |
| operator QCanvasBrush() const & | |
| operator QVariant() const |
プロテクトされた関数
| QCanvasGradient(const QCanvasGradient &) | |
| QCanvasGradient(QCanvasGradient &&) | |
| ~QCanvasGradient() | |
| QCanvasGradient & | operator=(QCanvasGradient &&) |
| QCanvasGradient & | operator=(const QCanvasGradient &) |
関連する非メンバー
| QCanvasGradientStops | |
| bool | operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QCanvasGradient &gradient) |
| QDataStream & | operator<<(QDataStream &stream, const QCanvasGradientStop &stop) |
| bool | operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QCanvasGradient &gradient) |
| QDataStream & | operator>>(QDataStream &stream, QCanvasGradientStop &stop) |
詳細な説明
QCanvasGradient は、すべてのQCanvasPainter グラデーションブラシの基底クラスです。現在、4 種類のグラデーションがあります:QCanvasLinearGradient 、QCanvasRadialGradient 、QCanvasConicalGradient 、QCanvasBoxGradient です。
setStartColor 、setEndColor 、setColorAt 、またはsetStops にストップが指定されていない場合、グラデーションは透明な黒(0,0,0,0)としてレンダリングされます。ストップが1つだけ指定されている場合、グラデーションはこの色で塗りつぶされます。
QCanvasPainter は、グラデーションの描画に 2 つの異なるアプローチを採用しています。
- ストップが最大2つの場合、色は2つの vec4 ユニフォームとしてシェーダーに渡されます。これにより、2ストップのグラデーションのアニメーション処理は、中間工程を必要とせず、非常に高いパフォーマンスを発揮します。
- ストップが2つを超える場合、色は1次元テクスチャとしてシェーダーに渡されます。デフォルトでは、テクスチャサイズは1×256ピクセルで、品質とパフォーマンスが最適化されています。 テクスチャはキャッシュされるため、グラデーションのストップや色が変更されない場合、他のグラデーションのプロパティ(位置、角度など)が変更されても、以前のテクスチャを再利用できます。マルチストップのグラデーションのアニメーション処理は高速ですが、テクスチャのアップロードが発生するため、その価値があるかどうかを検討してください。
グラデーションのテクスチャ使用量を制御するための環境変数がいくつかあります:
- QCPAINTER_DISABLE_TEXTURE_USAGE_TRACKING - デフォルトでは、グラデーションテクスチャの使用状況が追跡され、最大数以内に抑えられます。この環境変数を設定すると、追跡が無効になり、すべてのグラデーションテクスチャがメモリ内に保持されます。
- QCPAINTER_MAX_TEXTURES - デフォルトでは、テクスチャの最大数は
1024です。この環境変数に、希望する最大テクスチャ数を設定してください。最大数に達すると、現在使用されていない一時的なグラデーションテクスチャは自動的に削除されます。注: テクスチャ使用量の追跡が無効になっている場合、この設定は 効果を発揮しません。
メンバ関数のドキュメント
[delete] QCanvasGradient::QCanvasGradient()
QCanvasGradient のインスタンスをデフォルトで生成します。この関数は削除されました。
[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(const QCanvasGradient &)
QCanvasGradient のインスタンスをコピーして生成します。
[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(QCanvasGradient &&)
QCanvasGradient のインスタンスをmove-constructで生成します。
[constexpr noexcept protected default] QCanvasGradient::~QCanvasGradient()
QCanvasGradient のインスタンスを破棄します。
[since 6.12] void QCanvasGradient::addColorStop(qreal position, QColor color)
指定されたposition に、指定されたcolor を持つ停止点を生成します。指定されたposition は0から1の範囲でなければなりません。
このメソッドは、HTMLのCanvasGradient との互換性を確保するために提供されています。これはsetColorAt()と同等です。
この関数は Qt 6.12 で導入されました。
setStops() およびstops()も参照してください 。
QColor QCanvasGradient::endColor() const
グラデーションの終端色、または最も位置が遠い箇所の色を返します。ストップが設定されていない場合は、透明な黒(0, 0, 0, 0)を返します。
setEndColor()も参照してください 。
void QCanvasGradient::setColorAt(qreal position, QColor color)
指定されたposition に、指定されたcolor を持つストップポイントを作成します。指定されたposition は0から1の範囲でなければなりません。
setStops() およびstops()も参照してください 。
void QCanvasGradient::setEndColor(QColor color)
グラデーションの終了色を `color` に設定します。これは、位置 `1` を指定して `setColorAt()` を呼び出すのと同じです。
endColor()も参照してください 。
[since 6.12] void QCanvasGradient::setImage(const QCanvasImage &image, int index = 0)
y座標index の位置で、image をグラデーションソースとして使用します。これは、例えばsetStops()やsetColorAt()などを使用してグラデーションストップを設定する代わりに利用できる方法です。 画像のデフォルトの幅は 256 ピクセルですが、QCPAINTER_GRADIENT_SIZE を定義することで調整可能です。index パラメータはオプションであり、画像の高さが 1 ピクセルの場合は不要です。index の最大値は、画像の高さ - 1 である必要があります。
ストップを設定する代わりにこのメソッドを使用する考えられる理由:
- ストップを解析する必要がないため、作成がわずかに高速です。また、index を使用することで、1つの画像に複数のグラデーションを含めることができます。
- ストップのセットに変換することなく、デザインや画像から直接グラデーションを使用できる。
- ガウス曲線などの非線形グラデーションを使用できる。
注: ストップと画像の両方が設定されている場合 、ストップが優先されます。
以下に、256x1 グラデーション画像の使用方法の簡単な例を示します:
![]() | |
![]() | |
この関数は Qt 6.12 で導入されました。
setStops()も参照してください 。
void QCanvasGradient::setStartColor(QColor color)
グラデーションの開始色を `color` に設定します。これは、位置 `0` を指定して `setColorAt()` を呼び出すのと同じです。
startColor()も参照してください 。
void QCanvasGradient::setStops(const QCanvasGradientStops &stops)
現在のストップポイントのセットを、指定されたstops に置き換えます。
ストップリストに関するルールは以下の通りです:
- リストには少なくとも2つのストップが含まれている必要があります。
- ストップの位置は0から1の範囲内である必要があり、値が小さいものから順に並べ替えられている必要があります。
- 最初の位置は0.0、最後の位置は1.0でなければなりません。
setColorAt() およびstops()も参照してください 。
QColor QCanvasGradient::startColor() const
グラデーションの開始色、または位置が最も小さい箇所の色を返します。ストップが設定されていない場合は、透明な黒(0, 0, 0, 0)を返します。
setStartColor()も参照してください 。
QCanvasGradientStops QCanvasGradient::stops() const
このグラデーションのストップポイントを返します。
setStops() およびsetColorAt()も参照してください 。
QCanvasBrush::BrushType QCanvasGradient::type() const
グラデーションの型を返します。
QCanvasGradient::operator QCanvasBrush() const &
グラデーションをQCanvasBrush として返します。
この関数は、QCanvasGradient::operator QCanvasBrush() && をオーバーロードします。
QCanvasGradient::operator QVariant() const
勾配をQVariant として返します。
[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(QCanvasGradient &&)
other をこのQCanvasGradient インスタンスに移動・割り当てます。
[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(const QCanvasGradient &)
other をこのQCanvasGradient インスタンスにコピーして割り当てます。
関連する非メンバー
QCanvasGradientStops
QList のtypedef <QCanvasGradientStop>。
[noexcept] bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
勾配lhs がrhs と異なる場合はtrue を返し、それ以外の場合はfalse を返します。
operator==()も参照してください 。
QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)
指定されたgradient を指定されたstream に書き込み、stream への参照を返します。
「Qt データ型のシリアライズ」も参照してください 。
QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)
グラデーションstop を指定されたstream に書き込み、stream への参照を返します。
「Qt データ型のシリアル化」も参照してください 。
[noexcept] bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
勾配lhs がrhs と等しい場合はtrue を返し、それ以外の場合はfalse を返します。
operator!=()も参照してください 。
QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)
指定された `stream ` から指定された `gradient ` を読み取り、`stream` への参照を返します。
「Qt データ型のシリアライズ」も参照してください 。
QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)
指定されたstream からグラデーションstop を読み取り、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.

