Класс 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().
См. также Пример градиентов и QBrush.
Документация по типам членов
Перечисление 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, что позволяет применять preset к объектам произвольного размера.
Эта функция была введена в 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!=().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qgradient.html