Шаг 178.
Библиотека PyQt5.
Работа с графикой. Вспомогательные классы. Класс QColor: цвет
На этом шаге мы рассмотрим формы конструктора этого класса и методы цветовой модели RGB.
Класс QColor описывает цвет в цветовых моделях RGB, CMYK, HSV или HSL. Форматы конструктора класса QColor:
<Объект> = QColor()
<Объект> = QColor(<Красный>, <3еленый>, <Синий>[, alpha=255])
<Объект> = QColor(<Строка>)
<Объект> = QColor(<Атрибут цвета>)
<Объект> = QColor(<Число>)
<Объект> = QColor(<QColor>)
Первый конструктор создает невалидный объект. Проверить объект на валидность можно с помощью метода isValid(). Метод возвращает
значение True, если объект является валидным, и False - в противном случае.
Второй конструктор позволяет указать целочисленные значения красной, зеленой и синей составляющих цвета модели RGB. В качестве
параметров указываются числа от о до 255. Необязательный параметр alpha задает степень прозрачности цвета. Значение о соответствует прозрачному
цвету, а значение 255- полностью непрозрачному. Пример указания красного цвета:
red = QtGui.QColor(255, 0, 0)
В третьем конструкторе цвет указывается в виде строки в форматах "#RGB", "#RRGGBB", "#AARRGGBB" (здесь АА обозначает
степень прозрачности цвета), "#RRRGGGBBB", "#RRRRGGGGBBBB", "Название цвета" или "transparent"
(для прозрачного цвета). Примеры:
red = QtGui.QColor("#f00")
darkBlue = QtGui.QColor("#000080")
semiTransparentDarkBlue = QtGui.QColor("#7F000080")
white = QtGui.QColor("white")
Получить список всех поддерживаемых названий цветов позволяет статический метод colorNames(). Проверить правильность строки с
названием цвета можно с помощью статического метода isValidColor(<Строка>), который возвращает значение True,
если строка является правильным наименованием цвета, и False - в противном случае. Примеры:
print(QtGui.QColor.colorNames()) # ['aliceblue', 'antiquewhite', ...]
print(QtGui.QColor.isValidColor("lightcyan")) # True
В четвертом конструкторе указываются следующие атрибуты из класса QtCore.Qt: white, black, red, darkRed, green, darkGreen, blue, darkBlue, cyan, darkCyan, magenta, darkMagenta, yellow, darkYellow, gray, darkGray, lightGray, color0, color1
или transparent (прозрачный цвет). Атрибуты color0 (прозрачный цвет) и color1 (непрозрачный цвет) используются в двухцветных изображениях. Пример:
В пятом конструкторе указывается целочисленное значение цвета, а шестой конструктор создает новый объект на основе указанного в параметре.
Задать или получить значения в цветовой модели RGB (Red, Green, Blue - красный, зеленый, синий) позволяют следующие методы:
- setNamedColor (<Строка>) - задает название цвета в виде строки в форматах "#RGB", "#RRGGBB", "#AARRGGBB", "#RRRGGGBBB", "#RRRRGGGGBBBB", "Название цвета" или "transparent" (для прозрачного цвета);
- name () - возвращает строковое представление цвета в формате "#RRGGBB";
- name (<Формат>) - возвращает строковое представление цвета в заданном формате.
В качестве формата указывается один из атрибутов класса QColor: HexRgb(0, формат "#RRGGBB") или
HexArgb(l, формат "#AARRGGBB");
- setRgb (<Kpacный>, <3еленый>, <Синий>[, alpha=255]) - задает целочисленные значения красйой, зеленой и синей
составляющих цвета модели RGB. В качестве параметров указываются числа от о до 255. Необязательный параметр alpha задает степень
прозрачности цвета: значение о соответствует прозрачному цвету, а значение 255 - полностью непрозрачному;
- setRgb (<Число>) и setRgba (<Число>) - задают целочисленное значение цвета, второй метод - со степенью прозрачности;
- setRed (<Kpacный>), setGreen (<3еленый>), setBlue (<Синий>) и setAlpha (<Прозрачность>) -
задают значения отдельных составляющих цвета. В качестве параметров указываются числа от 0 до 255;
- fromRgb (<Kpacный>, <3еленый>, <Синий>[, alpha=255]) - возвращает экземпляр класса
QColor с указанными значениями. В качестве параметров указываются числа от 0 до 255.
Метод является статическим. Пример:
white = QtGui.QColor.fromRgb(255, 255, 255, 255)
- fromRgb (<Число>) и fromRgba (<Число>) - возвращают экземпляр класса QColor со значениями,
соответствующими целым числам, которые указаны в параметрах. Метод является статическим. Пример:
white = QtGui.QColor.fromRgba(4294967295)
- getRgb () - возвращает кортеж из четырех целочисленных значений (<Kpacный>, <3еленый>, <Синий>,
<Прозрачность>);
- red (), green (), blue () и alpha () - возвращают целочисленные значения отдельных составляющих цвета;
- rgb () и rgba () - возвращают целочисленное значение цвета;
- setRgbF (<Kpacный>, <3еленый>, <Синий>[, alpha=1.0]) - задает значения красной, зеленой и синей
составляющих цвета модели RGB. В качестве параметров указываются вещественные числа от 0.0 до 1.0. Необязательный параметр alpha задает степень
прозрачности цвета: значение 0.0 соответствует прозрачному цвету, а значение 1.0 - полностью непрозрачному;
- setRedF (<Kpacный>), setGreenF (<3еленый>>), setBlueF (<Синий>) и
setAlphaF(<Прозрачность>) - задают значения отдельных составляющих цвета. В качестве параметров указываются
вещественные числа от 0.0 до 1.0;
- fromRgbF (<Kpacный>, <3еленый>, <Синий>[, alpha=1.0]) - возвращает экземпляр класса
QColor с указанными значениями. В качестве параметров указываются вещественные числа от 0.0 до 1.0. Метод является статическим. Пример:
white = QtGui.QColor.fromRgbF(1.0, 1.0, 1.0, 1.0)
- getRgbF () - возвращает кортеж из четырех вещественных значений (<Kpacный>, <3еленый>, <Синий>,
<Прозрачность>);
- redF (), greenF (), blueF () и alphaF () - возвращают вещественные значения отдельных составляющих цвета;
- lighter ([factor=l50]) - если параметр имеет значение больше 100, то возвращает новый объект с более светлым цветом, а если меньше 100 - то с более темным;
- darker ([factor=200]) - если параметр имеет значение больше 100, то возвращает новый объект с более темным цветом, а если меньше 100 - то с более светлым.
На следующем шаге мы продолжим изучение этого вопроса.
Предыдущий шаг
Содержание
Следующий шаг