Spec-Zone.ru › Qt 5.12

Класс QGradient

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

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

QConicalGradient, QLinearGradient и QRadialGradient

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

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

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

Статические публичные члены

const QMetaObject staticMetaObject

Связанные нечлены

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.

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

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

Указывает, как область за пределами области градиента должна быть заполнена.

END_OF_DOCUMENT_MARKER
Константа Значение Описание
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, что позволяет применять предустановку к произвольным размерам объекта.

Эта функция была добавлена в 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)

Указывает метод распространения 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.

Эта функция была добавлена в 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.12/qgradient.html

Spec-Zone.ru

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