Spec-Zone.ru › Qt 5.9

Класс QGradient

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

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

QConicalGradient, QLinearGradient и QRadialGradient

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

Типы публичного доступа

Перечисление 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!=().

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

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.9/qgradient.html

Spec-Zone.ru

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