QGradient Class

Die Klasse QGradient wird in Kombination mit QBrush verwendet, um Gradientenfüllungen zu spezifizieren. Mehr...

Kopfzeile: #include <QGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Vererbt von:

QConicalGradient, QLinearGradient, und QRadialGradient

Öffentliche Typen

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 }

Öffentliche Funktionen

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

Detaillierte Beschreibung

Qt unterstützt derzeit drei Arten von Gradientenfüllungen:

  • Lineare Farbverläufe interpolieren Farben zwischen Start- und Endpunkten.
  • Einfache radiale Farbverläufe interpolieren Farben zwischen einem Fokuspunkt und Endpunkten auf einem ihn umgebenden Kreis.
  • Erweiterte radiale Farbverläufe interpolieren Farben zwischen einem Mittelpunkt und einem Fokuskreis.
  • Konische Farbverläufe interpolieren Farben um einen Mittelpunkt herum.

Der Typ eines Farbverlaufs kann mit der Funktion type() abgerufen werden. Jeder der Typen wird durch eine Unterklasse von QGradient dargestellt:

Die Farben in einem Farbverlauf werden durch Haltepunkte des Typs QGradientStop definiert, d. h. durch eine Position und eine Farbe. Verwenden Sie die Funktion setColorAt(), um einen einzelnen Haltepunkt zu definieren. Alternativ können Sie auch die Funktion setStops() verwenden, um mehrere Haltepunkte auf einmal zu definieren. Beachten Sie, dass die letztgenannte Funktion den aktuellen Satz von Haltepunkten ersetzt.

Es ist der vollständige Satz von Haltepunkten des Gradienten (zugänglich über die Funktion stops()), der beschreibt, wie der Gradientenbereich gefüllt werden soll. Wenn keine Haltepunkte angegeben wurden, wird ein Farbverlauf von Schwarz bei 0 bis Weiß bei 1 verwendet.

Ein diagonaler linearer Verlauf von Schwarz bei (100, 100) bis Weiß bei (200, 200) könnte so angegeben werden:

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

Ein Farbverlauf kann eine beliebige Anzahl von Haltepunkten haben. Die folgende Darstellung würde einen radialen Farbverlauf erzeugen, der in der Mitte mit Rot beginnt und an den Rändern in Blau und Grün übergeht:

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

Es ist möglich, den Farbverlauf außerhalb seines Bereichs zu wiederholen oder zu spiegeln, indem man spread method mit der Funktion setSpread() angibt. Standardmäßig wird der Außenbereich mit der Farbe des nächstgelegenen Haltepunkts aufgefüllt. Die aktuell eingestellte spread method kann mit der Funktion spread() abgefragt werden. Das QGradient::Spread enum definiert drei verschiedene Methoden:

Beachten Sie, dass die Funktion setSpread() nur für lineare und radiale Farbverläufe wirksam ist. Der Grund dafür ist, dass der konische Gradient per Definition geschlossen ist, d. h. der konische Gradient füllt den gesamten Kreis von 0 - 360 Grad aus, während die Grenze eines radialen oder linearen Gradienten durch seinen Radius bzw. seine Endpunkte angegeben werden kann.

Die Gradientenkoordinaten können in logischen Koordinaten, relativ zu den Gerätekoordinaten oder relativ zu den Bounding-Box-Koordinaten des Objekts angegeben werden. Die coordinate mode kann mit der Funktion setCoordinateMode() festgelegt werden. Die Vorgabe ist LogicalMode, wobei die Gradientenkoordinaten auf die gleiche Weise wie die Objektkoordinaten angegeben werden. Um die aktuell eingestellte coordinate mode abzurufen, verwenden Sie coordinateMode().

Siehe auch Das Gradienten-Beispiel und QBrush.

Dokumentation der Mitgliedstypen

enum QGradient::CoordinateMode

Diese Aufzählung gibt an, wie die Koordinaten des Farbverlaufs auf das Malgerät abgebildet werden, auf dem der Farbverlauf verwendet wird.

KonstanteWertBeschreibung
QGradient::LogicalMode0Dies ist der Standardmodus. Die Gradientenkoordinaten werden genau wie die Objektkoordinaten im logischen Raum angegeben.
QGradient::ObjectMode3In diesem Modus sind die Gradientenkoordinaten relativ zum Begrenzungsrechteck des gezeichneten Objekts, mit (0,0) in der oberen linken Ecke und (1,1) in der unteren rechten Ecke des Begrenzungsrechtecks des Objekts. Dieser Wert wurde in Qt 5.12 hinzugefügt.
QGradient::StretchToDeviceMode1In diesem Modus sind die Koordinaten des Farbverlaufs relativ zum Begrenzungsrechteck des Malgeräts, mit (0,0) in der oberen linken Ecke und (1,1) in der unteren rechten Ecke des Malgeräts.
QGradient::ObjectBoundingMode2Dieser Modus entspricht dem ObjectMode, mit dem Unterschied, dass die {QBrush::transform()} {Pinseltransformation}, falls vorhanden, relativ zum logischen Raum statt zum Objektraum angewendet wird. Dieser Enum-Wert ist veraltet und sollte nicht mehr in neuem Code verwendet werden.

enum QGradient::Preset

Diese Aufzählung gibt eine Reihe von vordefinierten Voreinstellungen für QGradient an, die auf den Farbverläufen von https://webgradients.com/ basieren.

KonstanteWert
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

Legt fest, wie der Bereich außerhalb des Verlaufsbereichs gefüllt werden soll.

KonstanteWertBeschreibung
QGradient::PadSpread0Der Bereich wird mit der nächstgelegenen Stoppfarbe gefüllt. Dies ist die Standardeinstellung.
QGradient::RepeatSpread2Der Farbverlauf wird außerhalb des Farbverlaufsbereichs wiederholt.
QGradient::ReflectSpread1Der Farbverlauf wird außerhalb des Farbverlaufsbereichs gespiegelt.

Siehe auch spread() und setSpread().

enum QGradient::Type

Gibt die Art des Farbverlaufs an.

KonstanteWertBeschreibung
QGradient::LinearGradient0Interpoliert Farben zwischen Start- und Endpunkten (QLinearGradient).
QGradient::RadialGradient1Interpoliert Farben zwischen einem Brennpunkt und Endpunkten auf einem ihn umgebenden Kreis (QRadialGradient).
QGradient::ConicalGradient2Interpoliert Farben um einen Mittelpunkt (QConicalGradient).
QGradient::NoGradient3Es wird kein Farbverlauf verwendet.

Siehe auch type().

Dokumentation der Mitgliedsfunktionen

QGradient::QGradient(QGradient::Preset preset)

Konstruiert einen Farbverlauf auf der Grundlage einer vordefinierten preset.

Der Koordinatenmodus des resultierenden Farbverlaufs ist QGradient::ObjectMode, so dass die Voreinstellung auf beliebige Objektgrößen angewendet werden kann.

QGradient::CoordinateMode QGradient::coordinateMode() const

Gibt den Koordinatenmodus dieses Farbverlaufs zurück. Der Standardmodus ist LogicalMode.

Siehe auch setCoordinateMode().

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

Erzeugt einen Haltepunkt am angegebenen position mit dem angegebenen color. Die angegebene position muss im Bereich von 0 bis 1 liegen.

Siehe auch setStops() und stops().

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

Setzt den Koordinatenmodus dieses Farbverlaufs auf mode. Der Standardmodus ist LogicalMode.

Siehe auch coordinateMode().

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

Gibt die Spreizung method an, die für diesen Gradienten verwendet werden soll.

Beachten Sie, dass diese Funktion nur für lineare und radiale Gradienten wirksam ist.

Siehe auch spread().

void QGradient::setStops(const QGradientStops &stopPoints)

Ersetzt den aktuellen Satz von Haltepunkten durch den angegebenen stopPoints. Die Positionen der Punkte müssen im Bereich von 0 bis 1 liegen und mit dem niedrigsten Punkt zuerst sortiert sein.

Siehe auch setColorAt() und stops().

QGradient::Spread QGradient::spread() const

Gibt die von diesem Gradienten verwendete Spreizmethode zurück. Die Vorgabe ist PadSpread.

Siehe auch setSpread().

QGradientStops QGradient::stops() const

Gibt die Haltepunkte für diesen Farbverlauf zurück.

Wenn keine Haltepunkte angegeben wurden, wird ein Farbverlauf von Schwarz bei 0 bis Weiß bei 1 verwendet.

Siehe auch setStops() und setColorAt().

QGradient::Type QGradient::type() const

Gibt den Typ des Farbverlaufs zurück.

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

Gibt true zurück, wenn der Gradient derselbe ist wie der andere angegebene gradient; andernfalls wird false zurückgegeben.

Siehe auch operator==().

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

Gibt true zurück, wenn der Gradient derselbe ist wie der andere angegebene gradient; andernfalls wird false zurückgegeben.

Siehe auch operator!=().

Verwandte Nicht-Mitglieder

QGradientStop

Typedef für QPair<qreal, QColor>.

QGradientStops

Typedef für QList<QGradientStop>.

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