Spec-Zone.ru › Qt 5.15

Класс QGradient

Класс QGradient используется совместно с QBrush для задания градиентных заливок. Подробнее...

Заголовок: #include <QGradient>
qmake: QT += gui
Наследуется от:

QConicalGradient, QLinearGradient и QRadialGradient

  • Список всех членов, включая унаследованные

Публичные типы

Перечисление CoordinateMode { LogicalMode, ObjectMode, StretchToDeviceMode, ObjectBoundingMode }
Перечисление Preset { WarmFlame, NightFade, SpringWarmth, JuicyPeach, YoungPassion, …, NumPresets }
Перечисление 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.

Документация по типам членов

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()} {преобразование кисти}, если таковое имеется, применяется относительно логического пространства, а не пространства объекта. Это значение перечисления устарело и не должно использоваться в новом коде.

Это перечисление было введено или изменено в Qt 4.4.

enum QGradient::Preset

Это перечисление определяет набор предопределённых пресетов для QGradient, основанных на градиентах с https://webgradients.com/.

Это перечисление было введено или изменено в 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().

Документация функций-членов

QGradient::QGradient(QGradient::Preset preset)

Создаёт градиент на основе предопределённого preset.

Режим координат полученного градиента — QGradient::ObjectMode, позволяющий применять preset к произвольным размерам объектов.

Эта функция была добавлена в Qt 5.12.

QGradient::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(QGradient::CoordinateMode mode)

Устанавливает режим координат этого градиента в mode. По умолчанию режим — LogicalMode.

Эта функция была добавлена в Qt 4.4.

См. также coordinateMode().

void QGradient::setSpread(QGradient::Spread method)

Определяет метод spread, который следует использовать для этого градиента.

Обратите внимание, что эта функция имеет эффект только для линейных и радиальных градиентов.

См. также spread().

void QGradient::setStops(const QGradientStops &stopPoints)

Заменяет текущий набор точек останова заданными stopPoints. Позиции точек должны находиться в диапазоне от 0 до 1 и быть отсортированы по возрастанию.

См. также setColorAt() и stops().

QGradient::Spread QGradient::spread() const

Возвращает метод spread, используемый этим градиентом. По умолчанию — 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.

Эта функция была добавлена в Qt 4.2.

См. также operator==().

bool QGradient::operator==(const QGradient &gradient) const

Возвращает true , если градиент совпадает с указанным gradient; в противном случае возвращает false.

См. также operator!=().

Связанные внешние функции

typedef QGradientStop

Тип-синоним для QPair<qreal, QColor>.

typedef QGradientStops

Тип-синоним для QVector<QGradientStop>.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qgradient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API