Класс QGradient
Класс QGradient используется в сочетании с QBrush для задания градиентных заливок. Подробнее...
| Заголовок: | #include <QGradient> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследуется от: |
Типы
| Перечисление | 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 |
Связанные нечлены
| QGradientStop | |
| QGradientStops |
Подробное описание
В настоящее время Qt поддерживает три типа градиентных заливок:
- Линейные градиенты интерполируют цвета между начальной и конечной точками.
- Радиальные градиенты интерполируют цвета между фокусной точкой и конечными точками по окружности вокруг неё.
- Расширенные радиальные градиенты интерполируют цвета между центром и фокусной окружностью.
- Конические градиенты интерполируют цвета вокруг центральной точки.
Тип градиента можно получить, используя функцию type(). Каждый из типов представлен подклассом QGradient:
| QLinearGradient | QRadialGradient | QConicalGradient |
|---|---|---|
Цвета в градиенте определяются с помощью точек останова типа 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(). Перечисление QGradient::Spread определяет три различных метода:
| PadSpread | RepeatSpread | ReflectSpread |
Обратите внимание, что функция setSpread() влияет только на линейные и радиальные градиенты. Причина в том, что конический градиент по определению замкнут, т.е. конический градиент заполняет всю окружность от 0 до 360 градусов, в то время как граница радиального или линейного градиента может быть задана через его радиус или конечные точки останова соответственно.
Координаты градиента можно указать в логических координатах, относительно координат устройства или относительно координат рамки объекта. Режим координат можно задать с помощью функции setCoordinateMode(). По умолчанию используется LogicalMode, где координаты градиента задаются так же, как и координаты объекта. Чтобы получить текущий установленный режим координат, используйте coordinateMode().
См. также Пример Gradients и QBrush.
Документация по типам членов
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()} {преобразование кисти}, если таковое имеется, применяется относительно логического пространства, а не пространства объекта. Это значение перечисления устарело и не должно использоваться в новом коде. |
[since 5.12] перечисление QGradient::Preset
Это перечисление задает набор предопределенных предустановок для QGradient, основанных на градиентах с сайта 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 |
Этот перечисление был введён или изменён в Qt 5.12.
enum QGradient::Spread
Указывает, как должна заполняться область за пределами области градиента.
| Константа | Значение | Описание |
|---|---|---|
QGradient::PadSpread |
0 |
Область заполняется цветом ближайшей точки. Это значение по умолчанию. |
QGradient::RepeatSpread |
2 |
Градиент повторяется за пределами области градиента. |
QGradient::ReflectSpread |
1 |
Градиент отражается за пределами области градиента. |
См. также spread() и setSpread().
enum QGradient::Type
Указывает тип градиента.
| Константа | Значение | Описание |
|---|---|---|
QGradient::LinearGradient |
0 |
Интерполирует цвета между начальной и конечной точками (QLinearGradient). |
QGradient::RadialGradient |
1 |
Интерполирует цвета между фокусной точкой и конечными точками по окружности вокруг неё (QRadialGradient). |
QGradient::ConicalGradient |
2 |
Интерполирует цвета вокруг центральной точки (QConicalGradient). |
QGradient::NoGradient |
3 |
Градиент не используется. |
См. также type().
Документация по функциям-членам
[since 5.12] QGradient::QGradient(QGradient::Preset preset)
Создаёт градиент на основе предопределённого preset.
Режим координат полученного градиента — QGradient::ObjectMode, что позволяет применять предварительно заданные значения к объектам произвольных размеров.
Эта функция была введена в Qt 5.12.
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
Возвращает true если градиент такой же, как заданный gradient; в противном случае возвращает false.
См. также operator==().
bool QGradient::operator==(const QGradient &gradient) const
Возвращает true если градиент такой же, как заданный gradient; в противном случае возвращает false.
См. также operator!=().
Связанные внешние функции
QGradientStop
Тип-синоним для QPair<qreal, QColor>.
QGradientStops
Тип-синоним для QList<QGradientStop>.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qgradient.html