На этом шаге рассмотрим константы именованных цветов.
В таблице 1 приведены константы именованных цветов, предопределенных в Qt. Они представляют собой палитру, состоящую из 17 цветов. Конечно, этих цветов недостаточно для получения фотореалистичных изображений, но они удобны на практике, особенно в тех ситуациях, когда требуется отображать основные цветовые значения.
(0, 0, 0) | Черный | |
(255, 255, 255) | Белый | |
(128, 128, 128) | Темно-серый | |
(160, 160, 164) | Серый | |
(192, 192, 192) | Светло-серый | |
(255, 0, 0) | Красный | |
(0, 255, 0) | Зеленый | |
(0, 0, 255) | Синий | |
(0, 255, 255) | Голубой | |
(255, 0, 255) | Пурпурный | |
(255, 255, 0) | Желтый | |
(128, 0, 0) | Темно-красный | |
(0, 128, 0) | Темно-зеленый | |
(0, 0, 128) | Темно-синий | |
(0, 128, 128) | Темно-голубой | |
(128, 0, 128) | Темно-пурпурный | |
(128, 128, 0) | Темно-желтый |
Класс QColor предоставляет методы lighter() и darker(), с помощью которых можно получать значения цвета, делая основное значение светлее или темнее. Эти методы не изменяют исходный объект цвета, а создают новый. Для этого текущий цвет в модели RGB преобразуется в цвет модели HSV и ее компонента "Значение" (Value) умножается (для darker() — делится) на множитель (выраженный в процентах), переданный в этот метод, а затем полученное значение преобразуется обратно в модель RGB. Сделать красный цвет немного темнее можно следующим образом:
QColor color = QColor(Qt::red).darker(160);
На следующем шаге рассмотрим иерархию классов рисования в Qt.