QGradient类
QGradient类与QBrush一起使用,用于指定渐变填充。 更多...
| 头文件 | #include <QGradient> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) | 
| qmake | QT += gui | 
| 继承自 | 
- 包括继承成员在内的所有成员列表
- QGradient是Painting Classes和隐式共享类的一部分。
公共类型
| 枚举 | 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::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目前支持三种类型的渐变填充
- 线性渐变在一些起点和终点之间进行颜色插值。
- 简单径向渐变在一些焦点和围绕该焦点的圆上的终点之间插值颜色。
- 扩展径向渐变在一些中心和焦点圆之间插值颜色。
- 锥形渐变在一些中心点周围插值颜色。
可以使用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()。
成员类型文档
enum QGradient::CoordinateMode
此枚举指定渐变坐标如何映射到渐变所用的绘制设备。
| 常量 | 值 | 描述 | 
|---|---|---|
| QGradient::LogicalMode | 0 | 这是默认模式。渐变坐标在逻辑空间中指定,就像对象坐标一样。 | 
| QGradient::ObjectMode | 3 | 在此模式中,渐变坐标相对于被绘制的对象的边界矩形,(0,0) 在对象的顶部左角,(1,1) 在对象的底部右角。此值是在 Qt 5.12 中添加的。 | 
| QGradient::StretchToDeviceMode | 1 | 在此模式中,渐变坐标相对于绘制设备的边界矩形,(0,0) 在绘制设备的顶部左角,(1,1) 在绘制设备的底部右角。 | 
| QGradient::ObjectBoundingMode | 2 | 此模式与 ObjectMode 相同,只是 {QBrush::transform()} {画笔变换} 如果有的话,是相对于逻辑空间而不是对象空间来应用的。该枚举值已弃用,不应在新代码中使用。 | 
enum QGradient::Preset
此枚举指定了一组基于 https://webgradients.com/ 中渐变的预定义设置集合。
| 常量 | 值 | 
|---|---|
| QGradient::WarmFlame | 1 | 
| QGradient::NightFade | 2 | 
| QGradient::SpringWarmth | 3 | 
| QGradient::JuicyPeach | 4 | 
| QGradient::YoungPassion | 5 | 
| QGradient::LadyLips | 6 | 
| QGradient::SunnyMorning | 7 | 
| QGradient::RainyAshville | 8 | 
| QGradient::FrozenDreams | 9 | 
| QGradient::WinterNeva | 10 | 
| QGradient::DustyGrass | 11 | 
| QGradient::TemptingAzure | 12 | 
| QGradient::HeavyRain | 13 | 
| QGradient::AmyCrisp | 14 | 
| QGradient::MeanFruit | 15 | 
| QGradient::DeepBlue | 16 | 
| QGradient::RipeMalinka | 17 | 
| QGradient::CloudyKnoxville | 18 | 
| QGradient::MalibuBeach | 19 | 
| QGradient::NewLife | 20 | 
| QGradient::TrueSunset | 21 | 
| QGradient::MorpheusDen | 22 | 
| QGradient::RareWind | 23 | 
| QGradient::NearMoon | 24 | 
| QGradient::WildApple | 25 | 
| QGradient::SaintPetersburg | 26 | 
| QGradient::PlumPlate | 28 | 
| QGradient::EverlastingSky | 29 | 
| QGradient::HappyFisher | 30 | 
| QGradient::Blessing | 31 | 
| QGradient::SharpeyeEagle | 32 | 
| QGradient::LadogaBottom | 33 | 
| QGradient::LemonGate | 34 | 
| QGradient::ItmeoBranding | 35 | 
| QGradient::ZeusMiracle | 36 | 
| QGradient::OldHat | 37 | 
| QGradient::StarWine | 38 | 
| QGradient::HappyAcid | 41 | 
| QGradient::AwesomePine | 42 | 
| QGradient::NewYork | 43 | 
| QGradient::ShyRainbow | 44 | 
| QGradient::MixedHopes | 46 | 
| QGradient::FlyHigh | 47 | 
| QGradient::StrongBliss | 48 | 
| QGradient::FreshMilk | 49 | 
| QGradient::SnowAgain | 50 | 
| QGradient::FebruaryInk | 51 | 
| QGradient::KindSteel | 52 | 
| QGradient::SoftGrass | 53 | 
| QGradient::GrownEarly | 54 | 
| QGradient::SharpBlues | 55 | 
| QGradient::ShadyWater | 56 | 
| QGradient::DirtyBeauty | 57 | 
| QGradient::GreatWhale | 58 | 
| QGradient::TeenNotebook | 59 | 
| QGradient::PoliteRumors | 60 | 
| QGradient::SweetPeriod | 61 | 
| QGradient::WideMatrix | 62 | 
| QGradient::SoftCherish | 63 | 
| QGradient::RedSalvation | 64 | 
| QGradient::BurningSpring | 65 | 
| QGradient::NightParty | 66 | 
| QGradient::SkyGlider | 67 | 
| QGradient::HeavenPeach | 68 | 
| QGradient::PurpleDivision | 69 | 
| QGradient::AquaSplash | 70 | 
| QGradient::SpikyNaga | 72 | 
| QGradient::LoveKiss | 73 | 
| QGradient::CleanMirror | 75 | 
| QGradient::PremiumDark | 76 | 
| QGradient::ColdEvening | 77 | 
| QGradient::CochitiLake | 78 | 
| QGradient::SummerGames | 79 | 
| QGradient::PassionateBed | 80 | 
| QGradient::MountainRock | 81 | 
| QGradient::DesertHump | 82 | 
| QGradient::JungleDay | 83 | 
| QGradient::PhoenixStart | 84 | 
| QGradient::OctoberSilence | 85 | 
| QGradient::FarawayRiver | 86 | 
| QGradient::AlchemistLab | 87 | 
| QGradient::OverSun | 88 | 
| QGradient::PremiumWhite | 89 | 
| QGradient::MarsParty | 90 | 
| QGradient::EternalConstance | 91 | 
| QGradient::JapanBlush | 92 | 
| QGradient::SmilingRain | 93 | 
| QGradient::CloudyApple | 94 | 
| QGradient::BigMango | 95 | 
| QGradient::HealthyWater | 96 | 
| QGradient::AmourAmour | 97 | 
| QGradient::RiskyConcrete | 98 | 
| QGradient::StrongStick | 99 | 
| QGradient::ViciousStance | 100 | 
| QGradient::PaloAlto | 101 | 
| QGradient::HappyMemories | 102 | 
| QGradient::MidnightBloom | 103 | 
| QGradient::Crystalline | 104 | 
| QGradient::PartyBliss | 106 | 
| QGradient::ConfidentCloud | 107 | 
| QGradient::LeCocktail | 108 | 
| QGradient::RiverCity | 109 | 
| QGradient::FrozenBerry | 110 | 
| QGradient::ChildCare | 112 | 
| QGradient::FlyingLemon | 113 | 
| QGradient::NewRetrowave | 114 | 
| QGradient::HiddenJaguar | 115 | 
| QGradient::AboveTheSky | 116 | 
| QGradient::Nega | 117 | 
| QGradient::DenseWater | 118 | 
| QGradient::Seashore | 120 | 
| QGradient::MarbleWall | 121 | 
| QGradient::CheerfulCaramel | 122 | 
| QGradient::NightSky | 123 | 
| QGradient::MagicLake | 124 | 
| QGradient::YoungGrass | 125 | 
| QGradient::ColorfulPeach | 126 | 
| QGradient::GentleCare | 127 | 
| QGradient::PlumBath | 128 | 
| QGradient::HappyUnicorn | 129 | 
| QGradient::AfricanField | 131 | 
| QGradient::SolidStone | 132 | 
| QGradient::OrangeJuice | 133 | 
| QGradient::GlassWater | 134 | 
| QGradient::NorthMiracle | 136 | 
| QGradient::FruitBlend | 137 | 
| QGradient::MillenniumPine | 138 | 
| QGradient::HighFlight | 139 | 
| QGradient::MoleHall | 140 | 
| QGradient::SpaceShift | 142 | 
| QGradient::ForestInei | 143 | 
| QGradient::RoyalGarden | 144 | 
| QGradient::RichMetal | 145 | 
| QGradient::JuicyCake | 146 | 
| QGradient::SmartIndigo | 147 | 
| QGradient::SandStrike | 148 | 
| QGradient::NorseBeauty | 149 | 
| QGradient::AquaGuidance | 150 | 
| QGradient::SunVeggie | 151 | 
| QGradient::SeaLord | 152 | 
| QGradient::BlackSea | 153 | 
| QGradient::GrassShampoo | 154 | 
| QGradient::LandingAircraft | 155 | 
| QGradient::WitchDance | 156 | 
| QGradient::SleeplessNight | 157 | 
| QGradient::AngelCare | 158 | 
| QGradient::CrystalRiver | 159 | 
| QGradient::SoftLipstick | 160 | 
| QGradient::SaltMountain | 161 | 
| QGradient::PerfectWhite | 162 | 
| QGradient::FreshOasis | 163 | 
| QGradient::StrictNovember | 164 | 
| QGradient::MorningSalad | 165 | 
| QGradient::DeepRelief | 166 | 
| QGradient::SeaStrike | 167 | 
| QGradient::NightCall | 168 | 
| QGradient::SupremeSky | 169 | 
| QGradient::LightBlue | 170 | 
| QGradient::MindCrawl | 171 | 
| QGradient::LilyMeadow | 172 | 
| QGradient::SugarLollipop | 173 | 
| QGradient::SweetDessert | 174 | 
| QGradient::MagicRay | 175 | 
| QGradient::TeenParty | 176 | 
| QGradient::FrozenHeat | 177 | 
| QGradient::GagarinView | 178 | 
| QGradient::FabledSunset | 179 | 
| QGradient::PerfectBlue | 180 | 
枚举 QGradient::Spread
指定了梯度区域外区域应如何填充。
| 常量 | 值 | 描述 | 
|---|---|---|
| QGradient::PadSpread | 0 | 区域用最近的停止颜色填充。这是默认设置。 | 
| QGradient::RepeatSpread | 2 | 在梯度区域外重复梯度。 | 
| QGradient::ReflectSpread | 1 | 在梯度区域外反射梯度。 | 
枚举 QGradient::Type
指定了渐变类型。
| 常量 | 值 | 描述 | 
|---|---|---|
| QGradient::LinearGradient | 0 | 在起点和终点之间插值颜色(QLinearGradient)。 | 
| QGradient::RadialGradient | 1 | 在焦点和一个围绕它的圆的终点之间插值颜色(QRadialGradient)。 | 
| QGradient::ConicalGradient | 2 | 在中心点周围插值颜色(QConicalGradient)。 | 
| QGradient::NoGradient | 3 | 不使用渐变。 | 
另请参阅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 的范围内。
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!=()。
© 2024 The Qt Company Ltd. 本文档中的贡献属于其各自的所有者。本文档的提供受 GNU自由文档许可证1.3版 的许可,由自由软件基金会发布。Qt 及其相关徽标是 The Qt Company Ltd 在芬兰及其它全球国家的商标。所有其他商标均是各自所有者的财产。





