Класс QGradient
Класс QGradient используется в сочетании с классом QBrush для задания градиентных заливок. Подробнее...
| Заголовок: | #include <QGradient> |
| qmake: | QT += gui |
| Наследуется от: |
Типы публичного доступа
| Перечисление | CoordinateMode { LogicalMode, StretchToDeviceMode, ObjectBoundingMode } |
| Перечисление | Spread { PadSpread, RepeatSpread, ReflectSpread } |
| Перечисление | Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient } |
Публичные функции
| CoordinateMode | coordinateMode() const |
| void | setColorAt(qreal position, const QColor &color) |
| void | setCoordinateMode(CoordinateMode mode) |
| void | setSpread(Spread method) |
| void | setStops(const QGradientStops &stopPoints) |
| Spread | spread() const |
| QGradientStops | stops() const |
| Type | type() const |
| bool | operator!=(const QGradient &gradient) const |
| bool | operator==(const QGradient &gradient) const |
Связанные нечлены
| typedef | QGradientStop |
| typedef | QGradientStops |
Подробное описание
Класс QGradient используется в сочетании с классом QBrush для задания градиентных заливок.
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); Можно повторить или отразить градиент за пределами его области, задав метод spread с помощью функции setSpread(). По умолчанию внешняя область заполняется цветом ближайшей точки останова. Текущий метод spread можно получить, используя функцию spread(). Перечисление QGradient::Spread определяет три различных метода:
| PadSpread | RepeatSpread | ReflectSpread |
Обратите внимание, что функция setSpread() имеет эффект только для линейных и радиальных градиентов. Причина в том, что конический градиент по определению замкнут, т. е. конический градиент заполняет всю окружность от 0 до 360 градусов, в то время как границы радиального или линейного градиента могут быть заданы через радиус или конечные точки останова соответственно.
Координаты градиента могут быть заданы в логических координатах, относительно координат устройства или относительно координат ограничивающей рамки объекта. Режим координат coordinate mode можно задать с помощью функции setCoordinateMode(). По умолчанию используется режим LogicalMode, в котором координаты градиента задаются так же, как и координаты объекта. Для получения текущего режима координат coordinate mode используйте функцию coordinateMode().
См. также Пример Gradients и QBrush.
Документация по типам членов
Перечисление QGradient::CoordinateMode
Это перечисление задаёт способ сопоставления координат градиента с устройством рисования, на котором используется градиент.
| Константа | Значение | Описание |
|---|---|---|
QGradient::LogicalMode |
0 |
Это режим по умолчанию. Координаты градиента задаются в логическом пространстве, так же как и координаты объекта. |
QGradient::StretchToDeviceMode |
1 |
В этом режиме координаты градиента относятся к ограничивающему прямоугольнику устройства рисования, с (0,0) в верхнем левом углу и (1,1) в нижнем правом углу устройства рисования. |
QGradient::ObjectBoundingMode |
2 |
В этом режиме координаты градиента относятся к ограничивающему прямоугольнику рисуемого объекта, с (0,0) в верхнем левом углу и (1,1) в нижнем правом углу ограничивающего прямоугольника объекта. |
Это перечисление было введено или изменено в Qt 4.4.
Перечисление QGradient::Spread
Указывает, как должна заполняться область вне области градиента.
| Константа | Значение | Описание |
|---|---|---|
QGradient::PadSpread |
0 |
Область заполняется цветом ближайшей точки останова. Это значение по умолчанию. |
QGradient::RepeatSpread |
2 |
Градиент повторяется за пределами области градиента. |
QGradient::ReflectSpread |
1 |
Градиент отражается за пределами области градиента. |
См. также spread() и setSpread().
Перечисление QGradient::Type
Задаёт тип градиента.
| Постоянная | Значение | Описание |
|---|---|---|
QGradient::LinearGradient |
0 |
Интерполирует цвета между начальной и конечной точками (QLinearGradient). |
QGradient::RadialGradient |
1 |
Интерполирует цвета между фокусной точкой и конечными точками по окружности, окружающей её (QRadialGradient). |
QGradient::ConicalGradient |
2 |
Интерполирует цвета вокруг центральной точки (QConicalGradient). |
QGradient::NoGradient |
3 |
Градиент не используется. |
См. также type().
Документация по функциям-членам
CoordinateMode QGradient::coordinateMode() const
Возвращает режим координат данного градиента. По умолчанию используется режим LogicalMode.
Эта функция была добавлена в Qt 4.4.
См. также setCoordinateMode().
void QGradient::setColorAt(qreal position, const QColor &color)
Создаёт точку останова в заданной position с заданным color. Заданное position должно быть в диапазоне от 0 до 1.
См. также setStops() и stops().
void QGradient::setCoordinateMode(CoordinateMode mode)
Устанавливает режим координат этого градиента в mode. По умолчанию используется режим LogicalMode.
Эта функция была добавлена в Qt 4.4.
См. также coordinateMode().
void QGradient::setSpread(Spread method)
Указывает метод заполнения method, который должен использоваться для данного градиента.
Обратите внимание, что эта функция имеет эффект только для линейных и радиальных градиентов.
См. также spread().
void QGradient::setStops(const QGradientStops &stopPoints)
Заменяет текущий набор точек останова заданными stopPoints. Позиции точек должны быть в диапазоне от 0 до 1 и должны быть отсортированы по возрастанию.
См. также setColorAt() и stops().
Spread QGradient::spread() const
Возвращает метод заполнения, используемый этим градиентом. По умолчанию используется PadSpread.
См. также setSpread().
QGradientStops QGradient::stops() const
Возвращает точки останова для данного градиента.
Если точки останова не были указаны, используется градиент от чёрного в 0 до белого в 1.
См. также setStops() и setColorAt().
Type QGradient::type() const
Возвращает тип градиента.
bool QGradient::operator!=(const QGradient &gradient) const
Возвращает true , если градиент совпадает с указанным gradient; в противном случае возвращает false.
Эта функция была добавлена в Qt 4.2.
См. также 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-5.9/qgradient.html