QGradient类

QGradient类与QBrush一起使用,用于指定渐变填充。 更多...

头文件 #include <QGradient>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承自

QConicalGradientQLinearGradientQRadialGradient

公共类型

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

公共函数

QGradient(QGradient::Preset preset)
QGradient::CoordinateModecoordinateMode() const
voidsetColorAt(qreal position, const QColor &color)
voidsetCoordinateMode(QGradient::CoordinateMode mode)
voidsetSpread(QGradient::Spread method)
voidsetStops(const QGradientStops &stopPoints)
QGradient::Spreadspread() const
QGradientStopsstops() const
QGradient::Typetype() const
booloperator!=(const QGradient &gradient) const
booloperator==(const QGradient &gradient) const

详细描述

Qt目前支持三种类型的渐变填充

  • 线性渐变在一些起点和终点之间进行颜色插值。
  • 简单径向渐变在一些焦点和围绕该焦点的圆上的终点之间插值颜色。
  • 扩展径向渐变在一些中心和焦点圆之间插值颜色。
  • 锥形渐变在一些中心点周围插值颜色。

可以使用type()函数检索渐变的类型。这些类型中的每一个都由QGradient的子类表示

渐变中的颜色是通过使用 QGradientStop 类型的停止点来定义的,即位置和颜色。使用 setColorAt() 函数来定义单个停止点。或者,使用 setStops() 函数一次性定义多个停止点。请注意,后一个函数会替换当前的停止点集合。

渐变的完整停止点集合(通过 stops() 函数访问)描述了如何填充渐变区域。如果没有指定停止点,则使用从黑色到白色的渐变。

从一个点(100, 100)的黑色到另一个点(200, 200)的白色对角线性渐变可以这样指定

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

渐变可以有任意数量的停止点。以下示例创建了一个从中心红色到边缘蓝色再绿色UCCEEDED的径向渐变

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

可以通过指定 扩散方法 并使用 setSpread() 函数来重复或反映渐变,以使其超出其区域。默认情况下,使用最近的停止点颜色填充外部区域。可以使用 spread() 函数检索当前设置的 扩散方法QGradient::Spread 枚举定义了三种不同的方法

请注意,setSpread() 函数仅对线性渐变和径向渐变有效。原因是锥形渐变是封闭的,即锥形渐变填充从0 - 360度的整个圆,而径向或线性渐变的边界可以通过其半径或最终停止点来指定。

渐变坐标可以作为逻辑坐标、相对于设备坐标或将相对于对象边界框坐标来指定。可以使用 setCoordinateMode() 函数设置 坐标模式。默认是 逻辑模式,其中渐变坐标对象坐标相同的方式指定。要检索当前设置的 坐标模式,请使用 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()} {画笔变换} 如果有的话,是相对于逻辑空间而不是对象空间来应用的。该枚举值已弃用,不应在新代码中使用。

enum QGradient::Preset

此枚举指定了一组基于 https://webgradients.com/ 中渐变的预定义设置集合。

常量
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

枚举 QGradient::Spread

指定了梯度区域外区域应如何填充。

常量描述
QGradient::PadSpread0区域用最近的停止颜色填充。这是默认设置。
QGradient::RepeatSpread2在梯度区域外重复梯度。
QGradient::ReflectSpread1在梯度区域外反射梯度。

另请参阅spread() 和 setSpread

枚举 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 的范围内。

另请参阅setStopsstops

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 的范围内,并且必须按最低点排序。

另请参阅setColorAtstops

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

QPair<qreal, QColor> 类型定义。

QGradientStops

QList<QGradientStop> 类型定义。

© 2024 The Qt Company Ltd. 本文档中的贡献属于其各自的所有者。本文档的提供受 GNU自由文档许可证1.3版 的许可,由自由软件基金会发布。Qt 及其相关徽标是 The Qt Company Ltd 在芬兰及其它全球国家的商标。所有其他商标均是各自所有者的财产。