このページでは

QGradient Class

QGradient クラスは、QBrush と組み合わせて、グラデーション塗りつぶしを指定するために使用されます。詳細...

ヘッダー: #include <QGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承元:

QConicalGradient、QLinearGradient 、およびQRadialGradient

パブリック型

enum CoordinateMode { LogicalMode, ObjectMode, StretchToDeviceMode, ObjectBoundingMode }
enum Preset { WarmFlame, NightFade, SpringWarmth, JuicyPeach, YoungPassion, …, PerfectBlue }
enum Spread { PadSpread, RepeatSpread, ReflectSpread }
enum Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient }

パブリック関数

QGradient(QGradient::Preset preset)
QGradient::CoordinateMode coordinateMode() const
void setColorAt(qreal position, const QColor &color)
void setCoordinateMode(QGradient::CoordinateMode mode)
void setSpread(QGradient::Spread method)
void setStops(const QGradientStops &stopPoints)
QGradient::Spread spread() const
QGradientStops stops() const
QGradient::Type type() const
bool operator!=(const QGradient &gradient) const
bool operator==(const QGradient &gradient) const

詳細な説明

Qt は現在、3 種類のグラデーション塗りつぶしをサポートしています:

  • 線形グラデーションは、開始点と終了点の間で色を補間します。
  • 単純な放射状グラデーションは、焦点と、それを囲む円上の終点との間で色を補間します。
  • 拡張放射状グラデーションは、中心と焦点円の間で色を補間します。
  • 円錐グラデーションは、中心点を中心に色を補間します。

グラデーションのタイプは、type() 関数を使用して取得できます。各タイプは、QGradient のサブクラスによって表されます:

グラデーション内の色は、QGradientStop 型のストップポイント(位置と色の組み合わせ)を使用して定義されます。単一のストップポイントを定義するには、setColorAt()関数を使用します。あるいは、setStops()関数を使用して、一度に複数のストップポイントを定義することもできます。後者の関数は、現在のストップポイントのセットを上書きすることに注意してください。

グラデーション領域をどのように塗りつぶすかを指定するのは、stops() 関数を通じてアクセスできる、グラデーションのストップポイントの完全なセットです。ストップポイントが指定されていない場合は、0 での黒から 1 での白へのグラデーションが使用されます。

(100, 100) の黒から (200, 200) の白への対角線状の線形グラデーションは、次のように指定できます。

QLinearGradient linearGrad(QPointF(100, 100), QPointF(200, 200));
linearGrad.setColorAt(0, Qt::black);
linearGrad.setColorAt(1, Qt::white);

グラデーションには、任意の数のストップポイントを設定できます。以下は、中心が赤、外側に向かって青、そして緑となる放射状のグラデーションを作成する例です:

QRadialGradient radialGrad(QPointF(100, 100), 100);
radialGrad.setColorAt(0, Qt::red);
radialGrad.setColorAt(0.5, Qt::blue);
radialGrad.setColorAt(1, Qt::green);

setSpread() 関数を使用してspread method を指定することで、グラデーション領域の外側でグラデーションを繰り返し表示したり、反転させたりすることが可能です。デフォルトでは、外側の領域は最も近いストップポイントの色で埋められます。現在設定されているspread method は、spread() 関数を使用して取得できます。QGradient::Spread 列挙型は、3つの異なる方法を定義しています:

なお、setSpread() 関数は、線形グラデーションおよび放射状グラデーションにのみ効果があります。その理由は、円錐グラデーションは定義上閉じた形状であるためです。つまり、円錐グラデーションは 0 度から 360 度までの円全体を塗りつぶしますが、放射状グラデーションや線形グラデーションの境界は、それぞれ半径や最終ストップポイントによって指定できるからです。

グラデーション座標は、論理座標、デバイス座標を基準とした相対座標、またはオブジェクトのバウンディングボックス座標を基準とした相対座標で指定できます。coordinate mode は、setCoordinateMode()関数を使用して設定できます。デフォルトはLogicalMode であり、この場合、グラデーション座標はオブジェクト座標と同じ方法で指定されます。現在設定されているcoordinate mode を取得するには、coordinateMode()を使用します。

「グラデーションの例」および「QBrush 」も参照してください 。

メンバ型のドキュメント

enum QGradient::CoordinateMode

この列挙型は、グラデーションの座標が、そのグラデーションが使用される描画デバイス上でどのようにマッピングされるかを指定します。

定数値説明
QGradient::LogicalMode0これがデフォルトのモードです。グラデーション座標は、オブジェクト座標と同様に論理空間で指定されます。
QGradient::ObjectMode3このモードでは、グラデーション座標は、描画されるオブジェクトの境界矩形を基準とし、オブジェクトの境界矩形の左上隅を (0,0)、右下隅を (1,1) とします。この値は Qt 5.12 で追加されました。
QGradient::StretchToDeviceMode1このモードでは、グラデーション座標はペイントデバイスのバウンディング矩形を基準とし、(0,0)はペイントデバイスの左上隅、(1,1)は右下隅に位置します。
QGradient::ObjectBoundingMode2このモードは ObjectMode と同じですが、{QBrush::transform()} {brush transform}(存在する場合)が、オブジェクト空間ではなく論理空間を基準として適用される点が異なります。この列挙型値は非推奨となっており、新しいコードでは使用しないでください。

enum QGradient::Preset

この列挙型は、https://webgradients.com/ に掲載されているグラデーションに基づいて、QGradient 用の事前定義済みプリセットのセットを指定するものです。

定数値
QGradient::WarmFlame1
QGradient::NightFade2
QGradient::SpringWarmth3
QGradient::JuicyPeach4
QGradient::YoungPassion5
QGradient::LadyLips6
QGradient::SunnyMorning7
QGradient::RainyAshville8
QGradient::FrozenDreams9
QGradient::WinterNeva10
QGradient::DustyGrass11
QGradient::TemptingAzure12
QGradient::HeavyRain13
QGradient::AmyCrisp14
QGradient::MeanFruit15
QGradient::DeepBlue16
QGradient::RipeMalinka17
QGradient::CloudyKnoxville18
QGradient::MalibuBeach19
QGradient::NewLife20
QGradient::TrueSunset21
QGradient::MorpheusDen22
QGradient::RareWind23
QGradient::NearMoon24
QGradient::WildApple25
QGradient::SaintPetersburg26
QGradient::PlumPlate28
QGradient::EverlastingSky29
QGradient::HappyFisher30
QGradient::Blessing31
QGradient::SharpeyeEagle32
QGradient::LadogaBottom33
QGradient::LemonGate34
QGradient::ItmeoBranding35
QGradient::ZeusMiracle36
QGradient::OldHat37
QGradient::StarWine38
QGradient::HappyAcid41
QGradient::AwesomePine42
QGradient::NewYork43
QGradient::ShyRainbow44
QGradient::MixedHopes46
QGradient::FlyHigh47
QGradient::StrongBliss48
QGradient::FreshMilk49
QGradient::SnowAgain50
QGradient::FebruaryInk51
QGradient::KindSteel52
QGradient::SoftGrass53
QGradient::GrownEarly54
QGradient::SharpBlues55
QGradient::ShadyWater56
QGradient::DirtyBeauty57
QGradient::GreatWhale58
QGradient::TeenNotebook59
QGradient::PoliteRumors60
QGradient::SweetPeriod61
QGradient::WideMatrix62
QGradient::SoftCherish63
QGradient::RedSalvation64
QGradient::BurningSpring65
QGradient::NightParty66
QGradient::SkyGlider67
QGradient::HeavenPeach68
QGradient::PurpleDivision69
QGradient::AquaSplash70
QGradient::SpikyNaga72
QGradient::LoveKiss73
QGradient::CleanMirror75
QGradient::PremiumDark76
QGradient::ColdEvening77
QGradient::CochitiLake78
QGradient::SummerGames79
QGradient::PassionateBed80
QGradient::MountainRock81
QGradient::DesertHump82
QGradient::JungleDay83
QGradient::PhoenixStart84
QGradient::OctoberSilence85
QGradient::FarawayRiver86
QGradient::AlchemistLab87
QGradient::OverSun88
QGradient::PremiumWhite89
QGradient::MarsParty90
QGradient::EternalConstance91
QGradient::JapanBlush92
QGradient::SmilingRain93
QGradient::CloudyApple94
QGradient::BigMango95
QGradient::HealthyWater96
QGradient::AmourAmour97
QGradient::RiskyConcrete98
QGradient::StrongStick99
QGradient::ViciousStance100
QGradient::PaloAlto101
QGradient::HappyMemories102
QGradient::MidnightBloom103
QGradient::Crystalline104
QGradient::PartyBliss106
QGradient::ConfidentCloud107
QGradient::LeCocktail108
QGradient::RiverCity109
QGradient::FrozenBerry110
QGradient::ChildCare112
QGradient::FlyingLemon113
QGradient::NewRetrowave114
QGradient::HiddenJaguar115
QGradient::AboveTheSky116
QGradient::Nega117
QGradient::DenseWater118
QGradient::Seashore120
QGradient::MarbleWall121
QGradient::CheerfulCaramel122
QGradient::NightSky123
QGradient::MagicLake124
QGradient::YoungGrass125
QGradient::ColorfulPeach126
QGradient::GentleCare127
QGradient::PlumBath128
QGradient::HappyUnicorn129
QGradient::AfricanField131
QGradient::SolidStone132
QGradient::OrangeJuice133
QGradient::GlassWater134
QGradient::NorthMiracle136
QGradient::FruitBlend137
QGradient::MillenniumPine138
QGradient::HighFlight139
QGradient::MoleHall140
QGradient::SpaceShift142
QGradient::ForestInei143
QGradient::RoyalGarden144
QGradient::RichMetal145
QGradient::JuicyCake146
QGradient::SmartIndigo147
QGradient::SandStrike148
QGradient::NorseBeauty149
QGradient::AquaGuidance150
QGradient::SunVeggie151
QGradient::SeaLord152
QGradient::BlackSea153
QGradient::GrassShampoo154
QGradient::LandingAircraft155
QGradient::WitchDance156
QGradient::SleeplessNight157
QGradient::AngelCare158
QGradient::CrystalRiver159
QGradient::SoftLipstick160
QGradient::SaltMountain161
QGradient::PerfectWhite162
QGradient::FreshOasis163
QGradient::StrictNovember164
QGradient::MorningSalad165
QGradient::DeepRelief166
QGradient::SeaStrike167
QGradient::NightCall168
QGradient::SupremeSky169
QGradient::LightBlue170
QGradient::MindCrawl171
QGradient::LilyMeadow172
QGradient::SugarLollipop173
QGradient::SweetDessert174
QGradient::MagicRay175
QGradient::TeenParty176
QGradient::FrozenHeat177
QGradient::GagarinView178
QGradient::FabledSunset179
QGradient::PerfectBlue180

enum QGradient::Spread

グラデーション領域の外側の領域をどのように塗りつぶすかを指定します。

定数値説明
QGradient::PadSpread0その領域は、最も近いストップの色で塗りつぶされます。これがデフォルトの設定です。
QGradient::RepeatSpread2グラデーション領域の外側でグラデーションが繰り返されます。
QGradient::ReflectSpread1グラデーション領域の外側では、グラデーションが反転表示されます。

spread() およびsetSpread()も参照してください 。

enum QGradient::Type

グラデーションの種類を指定します。

定数値説明
QGradient::LinearGradient0開始点と終了点の間で色を補間します (QLinearGradient)。
QGradient::RadialGradient1焦点と、それを囲む円上の終点との間で色を補間します (QRadialGradient)。
QGradient::ConicalGradient2中心点周辺の色を補間します(QConicalGradient )。
QGradient::NoGradient3グラデーションは使用されません。

type()も参照してください 。

メンバ関数のドキュメント

QGradient::QGradient(QGradient::Preset preset)

あらかじめ定義されたpreset に基づいてグラデーションを作成します。

生成されるグラデーションの座標モードはQGradient::ObjectMode であり、これにより、プリセットを任意のサイズのオブジェクトに適用することができます。

QGradient::CoordinateMode QGradient::coordinateMode() const

このグラデーションの座標モードを返します。デフォルトのモードは `LogicalMode` です。

setCoordinateMode()も参照してください 。

void QGradient::setColorAt(qreal position, const QColor &color)

指定されたposition に、指定されたcolor を持つストップポイントを作成します。指定されたposition は、0から1の範囲内である必要があります。

setStops() およびstops()も参照してください 。

void QGradient::setCoordinateMode(QGradient::CoordinateMode mode)

このグラデーションの座標モードを「mode 」に設定します。デフォルトのモードは「LogicalMode 」です。

coordinateMode()も参照してください 。

void QGradient::setSpread(QGradient::Spread method)

このグラデーションに使用するスプレッドmethod を指定します。

なお、この関数は線形グラデーションおよび放射状グラデーションにのみ効果があります。

spread()も参照してください 。

void QGradient::setStops(const QGradientStops &stopPoints)

現在のストップポイントのセットを、指定されたstopPoints に置き換えます。各ポイントの位置は0から1の範囲内である必要があり、値が小さい順に並べ替えられている必要があります。

setColorAt() およびstops()も参照してください 。

QGradient::Spread QGradient::spread() const

この勾配で使用されるスプレッド方式を返します。デフォルトは `PadSpread` です。

setSpread()も参照してください 。

QGradientStops QGradient::stops() const

このグラデーションのストップポイントを返します。

ストップポイントが指定されていない場合は、0 で黒、1 で白となるグラデーションが使用されます。

setStops() およびsetColorAt()も参照してください 。

QGradient::Type QGradient::type() const

グラデーションの型を返します。

bool QGradient::operator!=(const QGradient &gradient) const

指定された他のgradient と勾配が同じ場合はtrue を返し、そうでない場合はfalse を返します。

operator==()も参照してください 。

bool QGradient::operator==(const QGradient &gradient) const

指定された他のgradient と勾配が同じ場合はtrue を返し、そうでない場合はfalse を返します。

operator!=()も参照してください 。

関連する非メンバー関数

QGradientStop

std::pair<qreal,QColor> の typedef。

QGradientStops

QList のtypedef <QGradientStop>。

© 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.