Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QColor
[модуль QtGui]

Класс QColor предстасляет цвета, основанные на RGB или HSV моделях. Далее...

#include <QColor>

Открытые Типы

Открытые Функции

Статические Открытые Члены

Связанные Не-Члены


Подробное Описание

Класс QColor предстасляет цвета, основанные на RGB или HSV моделях.

Цвет обычно задается в терминах RGB (красный, зеленый и синий) компонентов, но также может быть задан в HSV (оттенок, насыщенность и яркость) или быть установлен по имени цвета (название цвета может быть любым из имен цветов SVG 1.0).

QColor также поддерживает задание прозрачности с помощью альфа-канала. Значение альфа-компонена, равное 0, означает полностью прозрачный цвет, в то время как значение, равное 255 означает полностью непрозрачный цвет. Например:

    // Задается полупрозрачный красный цвет
    painter.setBrush(QColor(255, 0, 0, 127));
    painter.drawRect(0, 0, width()/2, height());

    // Задается полупрозрачный синий цвет
    painter.setBrush(QColor(0, 0, 255, 127));
    painter.drawRect(0, 0, width(), height()/2);

Вышеприведенный пример приводит к выводу следующего изображения:

Альфа-смешивание поддерживается Windows, Mac OS X и системами X11, в которых установлено расширение X Render.

Значение альфа-компоненты цвета может быть получено и установлено с помощью функций alpha() и setAlpha(), если это значение типа integer, и с помощью функций alphaF() и setAlphaF(), если это значение типа qreal (double).

Правильность QColor (isValid()) указывает, является ли его значение корректным. Например, цвет RGB со значениями RGB, выходящими из диапазона, некорректен. По разумным соображениям QColor, главным образом, игнорирует некорректные цвета. Поэтому, результат использования некорректного цвета неопределен.

Есть 20 предопределенных объектов QColor: Qt::white, Qt::black, Qt::red, Qt::darkRed, Qt::green, Qt::darkGreen, Qt::blue, Qt::darkBlue, Qt::cyan, Qt::darkCyan, Qt::magenta, Qt::darkMagenta, Qt::yellow, Qt::darkYellow, Qt::gray, Qt::darkGray, Qt::lightGray, Qt::color0, Qt::color1 и Qt::transparent.

Qt Colors

Цвета Qt::color0 (нулевой пиксель) и Qt::color1 (не-нулевой пиксель) - это специальные цвета для рисования на QBitmaps. Рисование цветом Qt::color0 устанавливает биты битовой карты в 0 (прозначным, т.е. цветом фона), а рисование цветом Qt::color1 устанавливает биты в 1 (непрозрачным, т.е. цветом рисунка).

QColor платформенно и аппаратно независим. QColormap - Класс-карта цветов для аппаратных средств.

Цвет можно задать передав в setNamedColor() строку RGB (например "#112233") или имя цвета (например "blue"). Имена соответсвуют именам цветов в SVG 1.0. Получить более светлый или более темный цвет можно с помощью light() и dark() соответственно. Цвета также могут быть заданы с помощью setRgb() и setHsv(). К цветовым компонентам можно обращаться как к комплексному значению цвета, с помощью rgb() и hsv(), так и индивидуально, с помощью red(), green() и blue().

Цвета HSV

Поскольку большинство людей не имеют представления о цветовой модели HSV, мы дадим ее краткий обзор.

Модель RGB является аппаратно-ориентированной. Ее представление близко к тому, что отображают большинство мониторов. HSV, напротив, представляет цвет способом, больше подходящим для человеческого восприятия цвета. Например, отношения "насыщенней чем", "темнее чем" и "противоположный" легко выразимы в модели HSV, но их тяжело выразить в модели RGB.

HSV, подобно RGB, имеет три компонента:

Приведем несколько примеров: чисто-красный цвет - H=0, S=255, V=255; темно красный, переходящий в сиреневый, может быть выражен H=350 (эквивалентно -10), S=255, V=180; сероватый светлокрасный цвет может иметь H, близкий к 0 (350-359 или 0-10), S приблизительно равный 50-100, а V=255.

Для бесцветных цветов (серых) Qt возвращает значение оттенка, равное -1. Если Вы передаете значение слишком большое значение оттенка, Qt приводит его к значению, соответствующему диапазону. Насыщенность, равная 360 или 720, толкуется как 0; насыщенность, равная 540, толкуется как 180.

См. также QPalette и QApplication::setColorSpec().


Описание Типов Членов

enum QColor::Spec

Определяет цветовую модель: RGB, HSV или CMYK.

КонстантаЗначение
QColor::Rgb1
QColor::Hsv2
QColor::Cmyk3
QColor::Invalid0

Описание Функций-Членов

QColor::QColor ()

Создает цвет с недействительным значением RGB (0, 0, 0). Недействительный цвет - цвет, не имеющий дожного представления в основной оконной системе.

Альфа-значение недействительного цвета не задано.

См. также isValid().

QColor::QColor ( int r, int g, int b, int a = 255 )

Создает цвет со значениями RGB-компонентов r, g, b, и значением альфа-компонента (прозрачности), равном a; другой способ задания цвета: setRgb().

Цвет становится недействительным, если какой-либо из его компонентов недействителен.

См. также setRgba().

QColor::QColor ( QRgb color )

Создает цвет со значением color. Альфа-компонент игнорируется и устанавливается в непрозачный.

См. также fromRgb().

QColor::QColor ( const QString & name )

Создает именованный цвет, подобно setNamedColor(), используя name.

Цвет становится недействительным, если name не распознано.

См. также setNamedColor().

QColor::QColor ( const char * name )

Создает именованный цвет, подобно setNamedColor(), используя name.

Цвет становится недействительным, если name не распознано.

См. также setNamedColor().

QColor::QColor ( const QColor & color )

Создает цвет, являющийся копией color.

QColor::QColor ( Qt::GlobalColor color )

Создает новый цвет со значением color.

int QColor::alpha () const

Возвращает альфа-компонент данного цвета.

См. также setAlpha(), alphaF(), red(), green() и blue().

qreal QColor::alphaF () const

Возвращает альфа-компонент данного цвета.

См. также setAlphaF(), alpha(), redF(), greenF() и blueF().

int QColor::black () const

Возвращает черный компонент данного цвета.

См. также blackF(), cyan(), magenta(), yellow(), and alpha().

qreal QColor::blackF () const

Возвращает черный компонент данного цвета.

См. также black(), cyanF(), magentaF(), yellowF() и alphaF().

int QColor::blue () const

Возвращает синий компонент данного цвета.

См. также setBlue(), blueF(), red(), green() и alpha().

qreal QColor::blueF () const

Возвращает синий компонент данного цвета.

См. также setBlueF(), blue(), redF(), greenF() и alphaF().

QStringList QColor::colorNames ()   [static]

Возвращает QStringList, содержащий знакомые Qt имена цветов.

QColor QColor::convertTo ( Spec colorSpec ) const

Конвертирует цвет в формат, заданный с помощью colorSpec.

int QColor::cyan () const

Возвращает голубой компонент цвета.

См. также cyanF(), black(), magenta(), yellow() и alpha().

qreal QColor::cyanF () const

Возвращает голубой компонент цвета.

См. также cyan(), blackF(), magentaF(), yellowF() и alphaF().

QColor QColor::dark ( int factor = 200 ) const

Возвращает более темный (или более светлый) цвет, чем данный, не изменяя данного цвета.

Возвращает более темный цвет, если factor больше, чем 100. Если factor равно 300, то возвращается цвет, с яркостью, равной одной третьей яркости текущего цвета.

Возвращает более светлый цвет, если factor меньше, чем 100. Для этой цели Мы рекомендуем использовать light(). Если factor равен 0 или отрицателен, то возвращаемое значение неопределено.

(Данная функция конвертирует текущий цвет в модели RGB в модель HSV, делит V на factor и конвертирует обратно в модель RGB.)

См. также light().

QColor QColor::fromCmyk ( int c, int m, int y, int k, int a = 255 )   [static]

Статическая вспомогательная функция, которая возвращает QColor, созданный из цвета в модели CMYK, с компонентами c (голубой), m (пурпурный), y (желтый), k (черный) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0-255.

См. также toCmyk(), fromHsv() и fromRgb().

QColor QColor::fromCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 )   [static]

Это статическая функция для удобства, которая возвращает QColor, созданный из цвета в модели CMYK, с компонентами c (голубой), m (пурпурный), y (желтый), k (черный) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0.0-1.0.

См. также toCmyk(), fromHsv() и fromRgb().

QColor QColor::fromHsv ( int h, int s, int v, int a = 255 )   [static]

Это статическая функция для удобства, которая возвращает QColor, созданный из цвета в модели HSV, с компонентами h (оттенок), s (насыщенность), v (яркость) и a (альфа-канал, т.е. прозрачность).

Значения s, v и a должны находиться в диапазоне 0-255; значение h должно находиться в диапазоне 0-360.

См. также toHsv(), fromCmyk() и fromRgb().

QColor QColor::fromHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 )   [static]

Это статическая функция для удобства, которая возвращает QColor, созданный из цвета в модели HSV, с компонентами h (оттенок), s (насыщенность), v (яркость) и a (альфа-канал, т.е. прозрачность).

Значения h, s, v и a должны находиться в диапазоне 0.0-1.0.

См. также toHsv(), fromCmyk() и fromRgb().

QColor QColor::fromRgb ( QRgb rgb )   [static]

Создает цвет из argb-значения rgb.

Альфа-компонент значения rgb игнорируется. Для конвертирования из RGBA-значения используется функция fromRgba().

См. также fromRgba().

QColor QColor::fromRgb ( int r, int g, int b, int a = 255 )   [static]

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Это статическая функция для удобства, которая возвращает QColor, созданный из цвета в модели RGB, с компонентами r (красный), g (зеленый), b (синий) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0-255.

См. также toRgb(), fromCmyk() и fromHsv().

QColor QColor::fromRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 )   [static]

Это статическая функция для удобства, которая возвращает QColor, созданный из цвета в модели RGB, с компонентами r (красный), g (зеленый), b (синий) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0.0-1.0.

См. также toRgb(), fromCmyk() и fromHsv().

QColor QColor::fromRgba ( QRgb rgba )   [static]

Создает цвет из rgba-значения rgba.

См. также fromRgb().

void QColor::getCmyk ( int * c, int * m, int * y, int * k, int * a = 0 )

Устанавливает содержимое указателей c, m, y, k и a, в значения голубого, пурпурного, желтого, черного компонентов и альфа-компонента (прозрачности) CMYK-значения.

См. также setCmyk(), getRgb() и getHsv().

void QColor::getCmykF ( qreal * c, qreal * m, qreal * y, qreal * k, qreal * a = 0 )

Устанавливает содержимое указателей c, m, y, k и a, в значения голубого, пурпурного, желтого, черного компонентов и альфа-компонента (прозрачности) CMYK-значения.

См. также setCmyk(), getRgb() и getHsv().

void QColor::getHsv ( int * h, int * s, int * v, int * a = 0 ) const

Возвращает текущее RGB-значение как значение HSV. Содержимое указателей h, s и v устанавливается в значения HSV, а содержимое a устанавливается в значение альфа-канала (прозрачности). Если какой-либо из указателей нулевой, то функция ничего не делает.

Оттенок (в который устанавливается h) принимает значение -1, если цвет нецветной.

Предупреждение: Внутренне цвета хранятся в виде RGB-значение, поэтомуso getHSv() может возвращать значение, слегка отличное от установленного с помощью setHsv().

См. также setHsv() и rgb().

void QColor::getHsvF ( qreal * h, qreal * s, qreal * v, qreal * a = 0 ) const

Возвращает текущее RGB-значение как значение HSV. Содержимое указателей h, s и v устанавливается в значения HSV, а содержимое a устанавливается в значение альфа-канала (прозрачности). Если какой-либо из указателей нулевой, то функция ничего не делает.

См. также setHsv() и rgb().

void QColor::getRgb ( int * r, int * g, int * b, int * a = 0 ) const

Устанавливает содержимое указателей r, g, b и a в значения красного, зеленого, синева компонентов и альфа-компонента (прозрачности) в значения RGB.

См. также rgb(), setRgb() и getHsv().

void QColor::getRgbF ( qreal * r, qreal * g, qreal * b, qreal * a = 0 ) const

Устанавливает содержимое указателей r, g, b и a в значения красного, зеленого, синева компонентов и альфа-компонента (прозрачности) в значения RGB.

См. также rgb(), setRgb() и getHsv().

int QColor::green () const

Возвращает зеленую компоненту данного цвета.

См. также setGreen(), greenF(), red(), blue() и alpha().

qreal QColor::greenF () const

Возвращает зеленую компоненту данного цвета.

См. также setGreenF(), green(), redF(), blueF() и alphaF().

int QColor::hue () const

Возвращает компоненту оттенка данного цвета.

См. также hueF(), saturation(), value() и alpha().

qreal QColor::hueF () const

Возвращает компоненту оттенка данного цвета.

См. также hue(), saturationF(), valueF() и alphaF().

bool QColor::isValid () const

Возвращает true, если цвет действителен; в противном случае возвращает false.

Если цвет создан с помощью конструктора по умолчанию, то возвращается false.

QColor QColor::light ( int factor = 150 ) const

Возвращает более светлый (или более темный), чем данный, цвет, не изменяя данный объект.

Возвращается более светлный цвет, если factor больше, чем 100. Если factor равен 150, то возвращается цвет, который на 50% ярче.

Более темный цвет возвращается, если factor меньше, чем 100. Мы рекомендуем для этой цели использовать dark(). Если factor равен 0 или отрицательно, то возвращается неопределенное значение.

(Данная функция конвертирует текущее RGB-значение в HSV, умножает компонент V на factor и конвертирует результат обратно в RGB.)

См. также dark().

int QColor::magenta () const

Возвращает пурпурный компонент данного цвета.

См. также magentaF(), cyan(), black(), yellow() и alpha().

qreal QColor::magentaF () const

Возвращает пурпурный компонент данного цвета.

См. также magenta(), cyanF(), blackF(), yellowF() и alphaF().

QString QColor::name () const

Возвращает обозначение цвета в формате "#AARRGGBB"; т.е. за символом "#" следуют три двузначных шестнадцатиричных числа.

См. также setNamedColor().

int QColor::red () const

Возвращает красный компонент текущего цвета.

См. также setRed(), redF(), green(), blue() и alpha().

qreal QColor::redF () const

Возвращает красный компонент текущего цвета.

См. также setRedF(), red(), greenF(), blueF() и alphaF().

QRgb QColor::rgb () const

Возвращается RGB-значение данного цвета. Альфа компонент усекается для совместимости.

Возвращаемое значение QRgb эквивалентно unsigned int.

Для недействительлного цвета значение альфа-компонента возвращаемого цвета неопределено.

См. также setRgb(), getHsv(), qRed(), qBlue(), qGreen() и isValid().

QRgb QColor::rgba () const

Возвращает RGB-значение данного цвета. Обратите внимание, что в, отличие от rgb(), альфа-компонент не усекается.

Возвращаемое значение QRgb эквивалентно unsigned int.

Для недействительлного цвета значение альфа-компонента возвращаемого цвета неопределено.

См. также setRgb(), setRgba(), getHsv(), qRed(), qBlue(), qGreen() и isValid().

int QColor::saturation () const

Возвращает значение компонента насыщенности данного цвета.

См. также saturationF(), hue(), value() и alpha().

qreal QColor::saturationF () const

Возвращает значение компонента насыщенности данного цвета.

См. также saturation(), hueF(), valueF() и alphaF().

void QColor::setAlpha ( int alpha )

Устанавливает значение альфа-компонента в alpha. alpha - это целое значение из диапазона 0-255.

См. также alpha().

void QColor::setAlphaF ( qreal alpha )

Устанавливает значение альфа-компонента в alpha. alpha - это значение из диапазона 0-1.

См. также alphaF().

void QColor::setBlue ( int blue )

Устанавливает синий компонент данного цвета в значение blue. Компонент является целым числом из диапазона 0-255.

См. также blue().

void QColor::setBlueF ( qreal blue )

Устанавливает синий компонент данного цвета в значение blue. Компонент является числом с плавающей точкой из диапазона 0-1./p>

См. также blueF().

void QColor::setCmyk ( int c, int m, int y, int k, int a = 255 )

Устанавливает цвет в CMYK-значение, с параметрами: c (голубой), m (пурпурный), y (желтый), k (черный) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0-255.

См. также getCmyk(), setRgb() и setHsv().

void QColor::setCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 )

Устанавливает цвет в CMYK-значение, с парметрами: c (голубой), m (пурпурный), y (желтый), k (черный) и a (альфа-канал, т.е. прозрачность).

Все значения должны находиться в диапазоне 0.0-1.0.

См. также getCmyk(), setRgb() и setHsv().

void QColor::setGreen ( int green )

Устанавливает зеленый компонент данного цвета в значение green. Компонент является целым числом из диапазона 0-255.

См. также green().

void QColor::setGreenF ( qreal green )

Устанавливает зеленый компонент данного цвета в значение green. Компонент является числом с плавающей точкой из диапазона 0-1.

См. также greenF().

void QColor::setHsv ( int h, int s, int v, int a = 255 )

Устанавливает цвет в HSV значение, с параметрами: h (оттенок), s (насыщенность), v (яркость) и a (альфа-канал, т.е. прозрачность).

Если s, v или a не попадают в диапазон от 0 до 255, или h < -1, то цвет не изменяется.

См. также hsv(), getHsv() и setRgb().

void QColor::setHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 )

Значения h, s, v и a должны находиться в диапазоне 0.0-1.0.

void QColor::setNamedColor ( const QString & name )

Устанавливает RGB-значение цвета в цвет с именем name, которое может соответствовать одному из следующих форматов:

Цвет принимает недействительное значение, если name не может быть распознано.

void QColor::setRed ( int red )

Устанавливает красный компонент данного цвета в значение green. Компонент является целым числом из диапазона 0-255.

См. также red().

void QColor::setRedF ( qreal red )

Устанавливает красный компонент данного цвета в значение green. Компонент является числом с плавающей точкой из диапазона 0-1.

См. также redF().

void QColor::setRgb ( int r, int g, int b, int a = 255 )

Устанавливает цвет в RGB-значение с параметрами r, g, b и значение альфа-компонента a. Аргументы r, g, b и a должны находиться в диапазоне от 0 до 255. Если значения параметров будут вне позволенного диапазона, то цвет примет недействительное значение.

См. также rgb() и setHsv().

void QColor::setRgb ( QRgb rgb )

Данная перегрузенная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

При установке RGB-значения в rgb, значение альфа-компонента игнорируется.

Тип QRgb эквивалентен типу unsigned int.

См. также rgb() и setHsv().

void QColor::setRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 )

Устанавливает компоненты данного цвета в значения r (красный), g (зеленый), b (синий) и a (альфа, прозрачность).

Все значения должны находиться в диапазоне 0.0-1.0.

void QColor::setRgba ( QRgb rgba )

Устанавливает RGBA-значнение в rgba. В отличие от setRgb(QRgb rgb), данная функция не игнорирует значение альфа-компонента.

Тип QRgb эквивалентен типу unsigned int.

См. также rgba().

Spec QColor::spec () const

Возвращает способ задания цвета.

QColor QColor::toCmyk () const

Возвращает CMYK-значение QColor основанное на данном цвете.

См. также fromCmyk(), toHsv() и toRgb().

QColor QColor::toHsv () const

Возвращает HSV-значение QColor основанное на данном цвете.

См. также fromHsv(), toCmyk() и toRgb().

QColor QColor::toRgb () const

Возвращает RGB-значение QColor основанное на данном цвете.

См. также fromRgb(), toCmyk() и toHsv().

int QColor::value () const

Возвращает значение данного цвета.

См. также valueF(), hue(), saturation() и alpha().

qreal QColor::valueF () const

Возвращает значение данного цвета.

См. также value(), hueF(), saturationF() и alphaF().

int QColor::yellow () const

Возвращает желтый компонент данного цвета.

См. также yellowF(), cyan(), magenta(), black() и alpha().

qreal QColor::yellowF () const

Возвращает желтый компонент данного цвета.

См. также yellow(), cyanF(), magentaF(), blackF() и alphaF().

QColor::operator QVariant () const

Возвращает цвет как QVariant.

bool QColor::operator!= ( const QColor & color ) const

Возвращает true если данный цвет отличается от RGB-значения цвета color; в противном случае возвращает false.

QColor & QColor::operator= ( const QColor & color )

Делает данный цвет копией цвета color и возвращает ссылку на данный цвет.

QColor & QColor::operator= ( Qt::GlobalColor color )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Делает данный цвет копией цвета color и возвращает ссылку на данный цвет.

bool QColor::operator== ( const QColor & color ) const

Возвращает true если данный цвет имеет то-же значение, что и RGB-значение цвета color; в противном случае возвращает false.


Связанные Не-Члены

int qAlpha ( QRgb rgba )

Возвращает альфа-компонент RGBA-значения rgba.

int qBlue ( QRgb rgb )

Возвращает синий компонент RGBA-значения RGBA rgb.

См. также qRgb() и QColor::blue().

int qGray ( int r, int g, int b )

Возвращает значение серого цвета (от 0 до 255), вычисленной по тройке (r, g, b).

Возвращает серый цвет вычисленный по формуле (r*11 + g*16 + b*5)/32.

int qGray ( QRgb rgb )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает серый цвет (от 0 до 255) из RGB-значения rgb.

int qGreen ( QRgb rgb )

Возвращает зеленый компонент из RGBA-значения rgb.

См. также qRgb() и QColor::green().

int qRed ( QRgb rgb )

Возвращает красный компонент из RGBA-значения rgb.

См. также qRgb() и QColor::red().

QRgb qRgb ( int r, int g, int b )

Возвращает RGB-значение из тройки параметров (r, g, b).

Возвращаемый тип QRgb эквивалентен типу unsigned int.

См. также qRgba(), qRed(), qGreen() и qBlue().

QRgb qRgba ( int r, int g, int b, int a )

Возвращает RGBA-значение из четверки параметров (r, g, b, a).

Возвращаемый тип QRgba эквивалентен типу unsigned int.

См. также qRgb(), qRed(), qGreen() и qBlue().

QDataStream & operator<< ( QDataStream & stream, const QColor & color )

Записывает цвет color в поток stream.

См. также Формат операторов QDataStream.

QDataStream & operator>> ( QDataStream & stream, QColor & color )

Читает цвет color из потока stream.

См. также Формат операторов QDataStream.


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz