В трех представленных выше примерах используются встроенные шаблоны кисти (
Qt поддерживает три типа цветовых градиентов: линейный, конический и радиальный. В примере таймера духовки, который приводится в следующем разделе, в одном виджете используется комбинация всех трех типов градиентов для того, чтобы изображение выглядело реалистически.
• Линейные градиенты
определяются двумя контрольными точками и рядом «цветовых отметок» на линии, соединяющей эти точки. Например, линейный градиент на рис. 8.6 создан при помощи следующего программного кода:QLinearGradient gradient(50, 100, 300, 350);
gradient.setColorAt(0.0, Qt::white);
gradient.setColorAt(0.2, Qt::green);
gradient.setColorAt(1.0, Qt::black);
Мы задали три цвета в трех разных позициях между двумя контрольными точками. Позиции представляются в виде чисел с плавающей точкой в диапазоне между 0 и 1, где 0 соответствует первой контрольной точке, а 1 — последней контрольной точке. Цвет между этими позициями интерполируется.
• Радиальные градиенты
определяются центральной точкой (хс, ус), радиусом r и точкой фокуса (xf, yf), которая дополняет цветовые метки. Центральная точка и радиус определяют окружность. Изменение цвета распространяется во все стороны из точки фокуса, которая может совпадать с центральной точкой или может быть любой другой точкой внутри окружности.• Конические градиенты
определяются центральной точкой (хс, ус) и углом α. Изменение цвета распространяется вокруг центральной точки подобно перемещению секундной стрелки часов.До сих пор мы говорили о настройках пера, кисти и шрифта рисовальщика.
• Кисть фона (background brush)
используется для заполнения фона геометрических фигур (то есть под шаблоном кисти), текста или пиксельной карты, когда в качестве• Исходная точка кисти (brush origin)
задает точку начала отображения шаблона кисти, в качестве которой обычно используется точка верхнего левого угла виджета.• Границы области рисования (clip region)
определяют область рисования устройства. Операции рисования, которые выходят за пределы этой области, игнорируются.• Область отображения, окно и универсальная матрица преобразования (viewport, window и world matfix)
определяют способ перевода логических координат• Режим композиции (composition mode)
определяет способ взаимодействия новых выводимых пикселей с пикселями, уже присутствующими на устройстве рисования. По умолчанию используется режим «source over», при котором новые пиксели рисуются поверх существующих. Этот режим поддерживается только определенными устройствами, и он рассматривается позже в данной главе.В любой момент времени мы можем сохранить в стеке текущее состояние рисовальщика, вызывая функцию
Преобразования рисовальщика
В используемой по умолчанию координатной системе рисовальщика