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 在芬兰及其它全球国家的商标。所有其他商标均是各自所有者的财产。