En esta página

QColor Class

La clase QColor proporciona colores basados en valores RGB, HSV o CMYK. Más...

Cabecera: #include <QColor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Tipos Públicos

enum NameFormat { HexRgb, HexArgb }
enum Spec { Rgb, Hsv, Cmyk, Hsl, ExtendedRgb, Invalid }

Funciones Públicas

QColor()
QColor(QRgb color)
QColor(QRgba64 rgba64)
QColor(const QString &name)
QColor(int r, int g, int b, int a = 255)
QColor(QLatin1StringView name)
QColor(Qt::GlobalColor color)
QColor(const char *name)
int alpha() const
float alphaF() const
int black() const
float blackF() const
int blue() const
float blueF() const
QColor convertTo(QColor::Spec colorSpec) const
int cyan() const
float cyanF() const
QColor darker(int factor = 200) const
void getCmyk(int *c, int *m, int *y, int *k, int *a = nullptr) const
void getCmykF(float *c, float *m, float *y, float *k, float *a = nullptr) const
void getHsl(int *h, int *s, int *l, int *a = nullptr) const
void getHslF(float *h, float *s, float *l, float *a = nullptr) const
void getHsv(int *h, int *s, int *v, int *a = nullptr) const
void getHsvF(float *h, float *s, float *v, float *a = nullptr) const
void getRgb(int *r, int *g, int *b, int *a = nullptr) const
void getRgbF(float *r, float *g, float *b, float *a = nullptr) const
int green() const
float greenF() const
int hslHue() const
float hslHueF() const
int hslSaturation() const
float hslSaturationF() const
int hsvHue() const
float hsvHueF() const
int hsvSaturation() const
float hsvSaturationF() const
int hue() const
float hueF() const
bool isValid() const
QColor lighter(int factor = 150) const
int lightness() const
float lightnessF() const
int magenta() const
float magentaF() const
QString name(QColor::NameFormat format = HexRgb) const
int red() const
float redF() const
QRgb rgb() const
QRgba64 rgba64() const
QRgb rgba() const
int saturation() const
float saturationF() const
void setAlpha(int alpha)
void setAlphaF(float alpha)
void setBlue(int blue)
void setBlueF(float blue)
void setCmyk(int c, int m, int y, int k, int a = 255)
void setCmykF(float c, float m, float y, float k, float a = 1.0)
void setGreen(int green)
void setGreenF(float green)
void setHsl(int h, int s, int l, int a = 255)
void setHslF(float h, float s, float l, float a = 1.0)
void setHsv(int h, int s, int v, int a = 255)
void setHsvF(float h, float s, float v, float a = 1.0)
void setRed(int red)
void setRedF(float red)
void setRgb(int r, int g, int b, int a = 255)
void setRgb(QRgb rgb)
void setRgba64(QRgba64 rgba)
void setRgbF(float r, float g, float b, float a = 1.0)
void setRgba(QRgb rgba)
QColor::Spec spec() const
QColor toCmyk() const
QColor toExtendedRgb() const
QColor toHsl() const
QColor toHsv() const
QColor toRgb() const
int value() const
float valueF() const
int yellow() const
float yellowF() const
operator QVariant() const
bool operator!=(const QColor &color) const
QColor &operator=(Qt::GlobalColor color)
bool operator==(const QColor &color) const

Miembros Públicos Estáticos

QStringList colorNames()
QColor fromCmyk(int c, int m, int y, int k, int a = 255)
QColor fromCmykF(float c, float m, float y, float k, float a = 1.0)
QColor fromHsl(int h, int s, int l, int a = 255)
QColor fromHslF(float h, float s, float l, float a = 1.0)
QColor fromHsv(int h, int s, int v, int a = 255)
QColor fromHsvF(float h, float s, float v, float a = 1.0)
QColor fromRgb(QRgb rgb)
QColor fromRgb(int r, int g, int b, int a = 255)
QColor fromRgba64(QRgba64 rgba64)
QColor fromRgba64(ushort r, ushort g, ushort b, ushort a = USHRT_MAX)
QColor fromRgbF(float r, float g, float b, float a = 1.0)
QColor fromRgba(QRgb rgba)
(since 6.4) QColor fromString(QAnyStringView name)
(since 6.4) bool isValidColorName(QAnyStringView name)
QRgb
int qAlpha(QRgb rgba)
uint qAlpha(QRgba64 rgba64)
int qBlue(QRgb rgb)
uint qBlue(QRgba64 rgba64)
int qGray(int r, int g, int b)
int qGray(QRgb rgb)
int qGreen(QRgb rgb)
uint qGreen(QRgba64 rgba64)
QRgb qPremultiply(QRgb rgb)
QRgba64 qPremultiply(QRgba64 rgba64)
int qRed(QRgb rgb)
uint qRed(QRgba64 rgba64)
QRgb qRgb(int r, int g, int b)
QRgba64 qRgba64(quint64 c)
QRgba64 qRgba64(quint16 r, quint16 g, quint16 b, quint16 a)
QRgb qRgba(int r, int g, int b, int a)
QRgb qUnpremultiply(QRgb rgb)
QRgba64 qUnpremultiply(QRgba64 rgba64)
QDataStream &operator<<(QDataStream &stream, const QColor &color)
QDataStream &operator>>(QDataStream &stream, QColor &color)

Descripción Detallada

Un color se especifica normalmente en términos de componentes RGB (rojo, verde y azul), pero también es posible especificarlo en términos de componentes HSV (tono, saturación y valor) y CMYK (cian, magenta, amarillo y negro). Además, un color puede especificarse utilizando un nombre de color. El nombre del color puede ser cualquiera de los nombres de color SVG 1.0

RGBHSVCMYK

El constructor QColor crea el color basado en valores RGB. Para crear un QColor basado en valores HSV o CMYK, utilice las funciones toHsv() y toCmyk() respectivamente. Estas funciones devuelven una copia del color utilizando el formato deseado. Además, las funciones estáticas fromRgb(), fromHsv() y fromCmyk() crean colores a partir de los valores especificados. Alternativamente, un color puede ser convertido a cualquiera de los tres formatos utilizando la función convertTo() (devolviendo una copia del color en el formato deseado), o cualquiera de las funciones setRgb(), setHsv() y setCmyk() alterando el formato de este color. La función spec() indica cómo se especificó el color.

Un color puede establecerse pasando una cadena RGB (como "#112233"), o una cadena ARGB (como "#ff112233") o un nombre de color (como "azul"), a la función fromString(). Los nombres de color se toman de los nombres de color SVG 1.0. La función name() devuelve el nombre del color en el formato "#RRGGBB". Los colores también pueden establecerse utilizando setRgb(), setHsv() y setCmyk(). Para obtener un color más claro o más oscuro utilice las funciones lighter() y darker() respectivamente.

La función isValid() indica si un QColor es legal. Por ejemplo, un color RGB con valores RGB fuera de rango es ilegal. Por razones de rendimiento, QColor ignora en la mayoría de los casos los colores ilegales, y por esa razón, el resultado de utilizar un color no válido es indefinido.

Los componentes de color pueden recuperarse individualmente, por ejemplo con red(), hue() y cyan(). Los valores de los componentes de color también pueden obtenerse de una sola vez mediante las funciones getRgb(), getHsv() y getCmyk(). Si se utiliza el modelo de color RGB, también se puede acceder a los componentes de color con rgb().

Hay varios no-miembros relacionados: QRgb es un typdef para un unsigned int que representa el triplete de valores RGB (r, g, b). Tenga en cuenta que también puede contener un valor para el canal alfa (para más información, consulte la sección Alpha-Blended Drawing ). Las funciones qRed(), qBlue() y qGreen() devuelven el componente respectivo del valor QRgb dado, mientras que las funciones qRgb() y qRgba() crean y devuelven la tripleta QRgb basándose en los valores de los componentes dados. Por último, la función qAlpha() devuelve el componente alfa del valor QRgb proporcionado, y la función qGray() calcula y devuelve un valor de gris basado en el valor dado.

QColor es independiente de la plataforma y del dispositivo.

Para más información sobre la pintura en general, consulte la documentación del Sistema de Pintura.

Precisión en enteros vs. coma flotante

QColor soporta precisión en coma flotante y proporciona versiones en coma flotante de todas las funciones de componentes de color, por ejemplo getRgbF(), hueF() y fromCmykF(). Tenga en cuenta que, dado que los componentes se almacenan utilizando enteros de 16 bits, puede haber pequeñas desviaciones entre los valores establecidos utilizando, por ejemplo, setRgbF() y los valores devueltos por la función getRgbF() debido al redondeo.

Mientras que las funciones basadas en enteros toman valores en el rango 0-255 (excepto hue() que debe tener valores dentro del rango 0-359), las funciones de coma flotante aceptan valores en el rango 0.0 - 1.0.

Dibujo con mezcla alfa

QColor también admite contornos y rellenos con mezcla alfa. El canal alfa de un color especifica el efecto de transparencia, 0 representa un color totalmente transparente, mientras que 255 representa un color totalmente opaco. Por ejemplo:

// Specify semi-transparent red
painter.setBrush(QColor(255, 0, 0, 127));
painter.drawRect(0, 0, width() / 2, height());

// Specify semi-transparent blue
painter.setBrush(QColor(0, 0, 255, 127));
painter.drawRect(0, 0, width(), height() / 2);

El código anterior produce la siguiente salida:

Una imagen que contiene cuatro secciones cuadradas, con los colores morado, azul, rojo y blanco

El canal alfa de un color puede ser recuperado y fijado usando las funciones alpha() y setAlpha() si su valor es un entero, y alphaF() y setAlphaF() si su valor es float. Por defecto, el canal alfa es 255 (opaco). Para obtener y definir todos los componentes de color RGB (incluido el canal alfa) de una sola vez, utilice las funciones rgba() y setRgba().

Colores predefinidos

Existen 20 objetos QColor predefinidos en el espacio de nombres QColorConstants, entre los que se incluyen el negro, el blanco, los colores primarios y secundarios, las versiones más oscuras de estos colores y tres tonos de gris. Además, el espacio de nombres QColorConstants::Svg define objetos QColor para los nombres de palabras clave de color SVG estándar.

Colores Qt

Los colores QColorConstants::Color0, QColorConstants::Color1 y QColorConstants::Transparent se utilizan con fines especiales.

QColorConstants::Color0 (valor de píxel cero) y QColorConstants::Color1 (valor de píxel distinto de cero) son colores especiales para dibujar en QBitmaps. Pintar con QColorConstants::Color0 pone los bits del mapa de bits a 0 (transparente; es decir, fondo), y pintar con c{QColorConstants::Color1} pone los bits a 1 (opaco; es decir, primer plano).

QColorConstants::Transparent se utiliza para indicar un píxel transparente. Al pintar con este valor, se utilizará un valor de píxel apropiado para el formato de píxel subyacente en uso.

Por razones históricas, los 20 colores predefinidos también están disponibles en la enumeración Qt::GlobalColor.

Finalmente, QColor reconoce una variedad de nombres de color (como cadenas); la función estática colorNames() devuelve un QStringList nombres de color que QColor conoce.

El modelo de color RGB extendido

El modelo de color RGB extendido, también conocido como el espacio de color scRGB, es el mismo que el modelo de color RGB, excepto que permite valores por debajo de 0,0, y por encima de 1,0. Esto hace posible representar los colores que no pueden ser representados en el espacio de color RGB. Esto permite representar colores que, de otro modo, estarían fuera del rango del espacio de color RGB, pero seguir utilizando los mismos valores para los colores dentro del espacio de color RGB.

El modelo de color HSV

El modelo RGB está orientado al hardware. Su representación se aproxima a lo que muestran la mayoría de los monitores. Por el contrario, HSV representa el color de una manera más adecuada a la percepción humana del color. Por ejemplo, las relaciones "más fuerte que", "más oscuro que" y "lo contrario de" se expresan fácilmente en HSV, pero son mucho más difíciles de expresar en RGB.

HSV, al igual que RGB, tiene tres componentes:

  • H, para tono, está en el rango de 0 a 359 si el color es cromático (no gris), o no tiene sentido si es gris. Representa los grados de la rueda cromática que la mayoría de la gente conoce. El rojo es 0 (grados), el verde es 120 y el azul es 240.

  • S, para la saturación, está en el rango de 0 a 255, y cuanto mayor es, más fuerte es el color. Los colores grisáceos tienen una saturación cercana a 0; los colores muy fuertes tienen una saturación cercana a 255.

  • V, por valor, está en el rango de 0 a 255 y representa la luminosidad o brillo del color. 0 es negro; 255 es lo más alejado posible del negro.

He aquí algunos ejemplos: el rojo puro es H=0, S=255, V=255; un rojo oscuro, moviéndose ligeramente hacia el magenta, podría ser H=350 (equivalente a -10), S=255, V=180; un rojo claro grisáceo podría tener H cerca de 0 (digamos 350-359 o 0-10), S cerca de 50-100, y S=255.

Qt devuelve un valor de tono de -1 para los colores acromáticos. Si pasas un valor de tono demasiado grande, Qt lo fuerza a entrar en el rango. Tono 360 o 720 se trata como 0; tono 540 se trata como 180.

Además del modelo HSV estándar, Qt proporciona un canal alfa a la función alpha-blended drawing.

El modelo de color HSL

HSL es similar a HSV, sin embargo en lugar del parámetro Valor, HSL especifica un parámetro Luminosidad que se asigna de forma algo diferente al brillo del color.

Del mismo modo, el valor de saturación HSL no es en general el mismo que el valor de saturación HSV para el mismo color. hslSaturation() proporciona el valor de saturación HSL del color, mientras que saturation() y hsvSaturation() proporcionan el valor de saturación HSV.

El valor de matiz se define como el mismo en HSL y HSV.

El modelo de color CMYK

Mientras que los modelos de color RGB y HSV se utilizan para la visualización en monitores de ordenador, el modelo CMYK se utiliza en el proceso de impresión en cuatricromía de las imprentas y algunos dispositivos de impresión en papel.

CMYK tiene cuatro componentes, todos en el rango 0-255: cian (C), magenta (M), amarillo (Y) y negro (K). El cian, el magenta y el amarillo se denominan colores sustractivos; el modelo de color CMYK crea el color partiendo de una superficie blanca y, a continuación, sustrayendo color mediante la aplicación de los componentes adecuados. Mientras que combinando cian, magenta y amarillo se obtiene el color negro, restando uno o más se obtiene cualquier otro color. Cuando se combinan en varios porcentajes, estos tres colores pueden crear todo el espectro de colores.

Mezclar el 100% de cian, magenta y amarillo produce negro , pero el resultado es insatisfactorio, ya que desperdicia tinta, aumenta el tiempo de secado y da un color turbio al imprimir. Por eso, en la impresión profesional se añade negro para proporcionar un tono negro sólido; de ahí el término "cuatricromía".

Además del modelo estándar CMYK, Qt ofrece un canal alfa en alpha-blended drawing.

Véase también QPalette, QBrush, y QColorConstants.

Documentación de tipos de miembros

enum QColor::NameFormat

Cómo formatear la salida de la función name()

ConstanteValorDescripción
QColor::HexRgb0#RRGGBB Un carácter "#" seguido de tres números hexadecimales de dos dígitos (es decir, #RRGGBB).
QColor::HexArgb1#AARRGGBB Un carácter "#" seguido de cuatro números hexadecimales de dos dígitos (es decir, #AARRGGBB).

Véase también name().

enum QColor::Spec

El tipo de color especificado, ya sea RGB, RGB extendido, HSV, CMYK o HSL.

ConstanteValor
QColor::Rgb1
QColor::Hsv2
QColor::Cmyk3
QColor::Hsl4
QColor::ExtendedRgb5
QColor::Invalid0

Véase también spec() y convertTo().

Documentación de las funciones miembro

[constexpr noexcept] QColor::QColor()

Crea un color no válido con el valor RGB (0, 0, 0). Un color no válido es un color que no está configurado correctamente para el sistema de ventanas subyacente.

El valor alfa de un color inválido no se especifica.

Véase también isValid().

[noexcept] QColor::QColor(QRgb color)

Crea un color con el valor color. El componente alfa se ignora y se establece como sólido.

Véase también fromRgb() y isValid().

[noexcept] QColor::QColor(QRgba64 rgba64)

Construye un color con el valor rgba64.

Véase también fromRgba64().

QColor::QColor(const QString &name)

Construye un color con nombre del mismo modo que fromString() utilizando el name dado.

El color se deja inválido si el name no puede ser analizado.

Véase también fromString(), name() y isValid().

[constexpr noexcept] QColor::QColor(int r, int g, int b, int a = 255)

Construye un color con el valor RGB r, g, b, y el valor del canal alfa (transparencia) de a.

El color queda inválido si alguno de los argumentos es inválido.

Véase también setRgba() y isValid().

QColor::QColor(QLatin1StringView name)

Construye un color con nombre del mismo modo que fromString() utilizando la dirección name.

Esta es una función sobrecargada.

Véase también fromString(), name() y isValid().

[noexcept] QColor::QColor(Qt::GlobalColor color)

Crea un nuevo color con el valor color.

Se trata de una función sobrecargada.

Véase también isValid() y Predefined Colors.

QColor::QColor(const char *name)

Construye un color con nombre del mismo modo que fromString() utilizando la dirección name.

Esta es una función sobrecargada.

Véase también fromString(), name() y isValid().

[noexcept] int QColor::alpha() const

Devuelve el componente de color alfa de este color.

Véase también setAlpha(), alphaF(), y Alpha-Blended Drawing.

[noexcept] float QColor::alphaF() const

Devuelve el componente de color alfa de este color.

Véase también setAlphaF(), alpha(), y Alpha-Blended Drawing.

[noexcept] int QColor::black() const

Devuelve el componente de color negro de este color.

Véase también blackF(), getCmyk() y The CMYK Color Model.

[noexcept] float QColor::blackF() const

Devuelve el componente de color negro de este color.

Véase también black(), getCmykF() y The CMYK Color Model.

[noexcept] int QColor::blue() const

Devuelve el componente de color azul de este color.

Véase también setBlue(), blueF() y getRgb().

[noexcept] float QColor::blueF() const

Devuelve el componente de color azul de este color.

Véase también setBlueF(), blue() y getRgbF().

[static] QStringList QColor::colorNames()

Devuelve un QStringList que contiene los nombres de colores que conoce Qt.

Véase también Predefined Colors.

[noexcept] QColor QColor::convertTo(QColor::Spec colorSpec) const

Crea una copia de este color en el formato especificado por colorSpec.

Véase también spec(), toCmyk(), toHsv(), toRgb() y isValid().

[noexcept] int QColor::cyan() const

Devuelve el componente de color cian de este color.

Véase también cyanF(), getCmyk() y The CMYK Color Model.

[noexcept] float QColor::cyanF() const

Devuelve el componente de color cian de este color.

Véase también cyan(), getCmykF() y The CMYK Color Model.

[noexcept] QColor QColor::darker(int factor = 200) const

Devuelve un color más oscuro (o más claro), pero no cambia este objeto.

Si factor es mayor que 100, esta función devuelve un color más oscuro. Ajustando factor a 300 devuelve un color que tiene un tercio del brillo. Si factor es menor que 100, el color devuelto es más claro, pero recomendamos utilizar la función lighter() para este propósito. Si factor es 0 o negativo, el valor de retorno no se especifica.

La función convierte el color actual a HSV, divide el componente de valor (V) por factor y vuelve a convertir el color a su especificación de color original.

Véase también lighter() y isValid().

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

Función estática que devuelve un QColor construido a partir de los valores de color CMYK dados: c (cian), m (magenta), y (amarillo), k (negro) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar en el intervalo 0-255.

Véase también toCmyk(), fromCmykF(), isValid(), y The CMYK Color Model.

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

Función estática que devuelve un QColor construido a partir de los valores de color CMYK dados: c (cian), m (magenta), y (amarillo), k (negro) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar comprendidos entre 0,0 y 1,0.

Véase también toCmyk(), fromCmyk(), isValid(), y The CMYK Color Model.

[static] QColor QColor::fromHsl(int h, int s, int l, int a = 255)

Función estática que devuelve un QColor construido a partir de los valores de color HSV, h (tono), s (saturación), l (luminosidad) y a (canal alfa, es decir, transparencia).

Los valores de s, l, y a deben estar todos en el rango 0-255; el valor de h debe estar en el rango 0-359.

Véase también toHsl(), fromHslF(), isValid(), y The HSL Color Model.

[static] QColor QColor::fromHslF(float h, float s, float l, float a = 1.0)

Función estática que devuelve un QColor construido a partir de los valores de color HSV, h (tono), s (saturación), l (luminosidad) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar comprendidos entre 0,0 y 1,0.

Véase también toHsl(), fromHsl(), isValid() y The HSL Color Model.

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

Función estática que devuelve un QColor construido a partir de los valores de color HSV, h (tono), s (saturación), v (valor) y a (canal alfa, es decir, transparencia).

Los valores de s, v, y a deben estar todos en el rango 0-255; el valor de h debe estar en el rango 0-359.

Véase también toHsv(), fromHsvF(), isValid(), y The HSV Color Model.

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

Función estática que devuelve un QColor construido a partir de los valores de color HSV, h (tono), s (saturación), v (valor) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar comprendidos entre 0,0 y 1,0.

Véase también toHsv(), fromHsv(), isValid() y The HSV Color Model.

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

Función estática que devuelve un QColor construido a partir del valor QRgb dado rgb.

El componente alfa de rgb se ignora (es decir, se establece automáticamente en 255), utilice la función fromRgba() para incluir el canal alfa especificado por el valor QRgb dado.

Véase también fromRgba(), fromRgbF(), toRgb(), y isValid().

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

Función estática que devuelve un QColor construido a partir de los valores de color RGB, r (rojo), g (verde), b (azul) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar en el intervalo 0-255.

Véase también toRgb(), fromRgba64(), fromRgbF() y isValid().

[static noexcept] QColor QColor::fromRgba64(QRgba64 rgba64)

Función estática que devuelve un QColor construido a partir del valor QRgba64 dado rgba64.

Véase también fromRgb(), fromRgbF(), toRgb() y isValid().

[static noexcept] QColor QColor::fromRgba64(ushort r, ushort g, ushort b, ushort a = USHRT_MAX)

Función estática que devuelve un QColor construido a partir de los valores de color RGBA64, r (rojo), g (verde), b (azul) y a (canal alfa, es decir, transparencia).

Véase también fromRgb(), fromRgbF(), toRgb(), y isValid().

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

Función estática que devuelve un QColor construido a partir de los valores de color RGB, r (rojo), g (verde), b (azul) y a (canal alfa, es decir, transparencia).

El valor alfa debe estar en el intervalo 0,0-1,0. Si alguno de los otros valores está fuera del rango de 0,0-1,0, el modelo de color se establecerá como ExtendedRgb.

Véase también fromRgb(), fromRgba64(), toRgb() y isValid().

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

Función estática que devuelve un QColor construido a partir del valor QRgb dado rgba.

A diferencia de la función fromRgb(), se incluye el canal alfa especificado por el valor QRgb dado.

Véase también fromRgb(), fromRgba64() y isValid().

[static noexcept, since 6.4] QColor QColor::fromString(QAnyStringView name)

Devuelve un RGB QColor analizado desde name, que puede estar en uno de estos formatos:

  • #RGB (cada R, G y B es un dígito hexadecimal)
  • #RRGGBB
  • #AARRGGBB (desde 5.2)
  • #RRRGGGBBB
  • #RRRGGGGBBBB
  • Un nombre de la lista de colores definidos en la lista de nombres de palabras clave de color SVG proporcionada por el World Wide Web Consortium; por ejemplo, "steelblue" o "gainsboro". Estos nombres de colores funcionan en todas las plataformas. Tenga en cuenta que estos nombres de color no son los mismos que los definidos por los enums de Qt::GlobalColor; por ejemplo, "green" y Qt::green no se refieren al mismo color.
  • transparent - que representa la ausencia de un color.

Devuelve un color inválido si name no puede ser analizado.

Esta función se introdujo en Qt 6.4.

Véase también isValidColorName().

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

Establece los contenidos apuntados por c, m, y, k, y a, a los componentes cian, magenta, amarillo, negro y canal alfa (transparencia) del valor CMYK del color.

Estos componentes pueden recuperarse individualmente mediante las funciones cyan(), magenta(), yellow(), black() y alpha().

Véase también setCmyk() y The CMYK Color Model.

void QColor::getCmykF(float *c, float *m, float *y, float *k, float *a = nullptr) const

Establece los contenidos apuntados por c, m, y, k, y a, a los componentes cian, magenta, amarillo, negro y canal alfa (transparencia) del valor CMYK del color.

Estos componentes pueden recuperarse individualmente mediante las funciones cyanF(), magentaF(), yellowF(), blackF() y alphaF().

Véase también setCmykF() y The CMYK Color Model.

void QColor::getHsl(int *h, int *s, int *l, int *a = nullptr) const

Establece los contenidos apuntados por h, s, l, y a, a los componentes de tono, saturación, luminosidad y canal alfa (transparencia) del valor HSL del color.

Estos componentes pueden recuperarse individualmente mediante las funciones hslHue(), hslSaturation(), lightness() y alpha().

Véase también getHslF(), setHsl() y The HSL Color Model.

void QColor::getHslF(float *h, float *s, float *l, float *a = nullptr) const

Establece los contenidos apuntados por h, s, l, y a, a los componentes de tono, saturación, luminosidad y canal alfa (transparencia) del valor HSL del color.

Estos componentes pueden recuperarse individualmente mediante las funciones hslHueF(), hslSaturationF(), lightnessF() y alphaF().

Véase también getHsl(), setHslF() y The HSL Color Model.

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

Establece los contenidos apuntados por h, s, v, y a, a los componentes de tono, saturación, valor y canal alfa (transparencia) del valor HSV del color.

Estos componentes pueden recuperarse individualmente mediante las funciones hue(), saturation(), value() y alpha().

Véase también setHsv() y The HSV Color Model.

void QColor::getHsvF(float *h, float *s, float *v, float *a = nullptr) const

Establece los contenidos apuntados por h, s, v, y a, a los componentes de tono, saturación, valor y canal alfa (transparencia) del valor HSV del color.

Estos componentes pueden recuperarse individualmente mediante las funciones hueF(), saturationF(), valueF() y alphaF().

Véase también setHsv() y The HSV Color Model.

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

Establece los contenidos apuntados por r, g, b, y a, a los componentes rojo, verde, azul y canal alfa (transparencia) del valor RGB del color.

Estos componentes pueden recuperarse individualmente mediante las funciones red(), green(), blue() y alpha().

Véase también rgb() y setRgb().

void QColor::getRgbF(float *r, float *g, float *b, float *a = nullptr) const

Establece los contenidos apuntados por r, g, b, y a, a los componentes rojo, verde, azul y canal alfa (transparencia) del valor RGB del color.

Estos componentes pueden recuperarse individualmente mediante las funciones redF(), greenF(), blueF() y alphaF().

Véase también rgb() y setRgb().

[noexcept] int QColor::green() const

Devuelve el componente de color verde de este color.

Véase también setGreen(), greenF() y getRgb().

[noexcept] float QColor::greenF() const

Devuelve el componente de color verde de este color.

Véase también setGreenF(), green() y getRgbF().

[noexcept] int QColor::hslHue() const

Devuelve el componente de color HSL hue de este color.

Véase también hslHueF(), hsvHue(), getHsl() y The HSL Color Model.

[noexcept] float QColor::hslHueF() const

Devuelve el componente de color HSL hue de este color.

Véase también hslHue(), hsvHueF() y getHslF().

[noexcept] int QColor::hslSaturation() const

Devuelve el componente de color de saturación HSL de este color.

Véase también hslSaturationF(), hsvSaturation(), getHsl() y The HSL Color Model.

[noexcept] float QColor::hslSaturationF() const

Devuelve el componente de color de saturación HSL de este color.

Véase también hslSaturation(), hsvSaturationF(), getHslF() y The HSL Color Model.

[noexcept] int QColor::hsvHue() const

Devuelve el componente de color HSV hue de este color.

Véase también hueF(), hslHue(), getHsv() y The HSV Color Model.

[noexcept] float QColor::hsvHueF() const

Devuelve el componente de tono de este color.

Véase también hue(), hslHueF(), getHsvF() y The HSV Color Model.

[noexcept] int QColor::hsvSaturation() const

Devuelve el componente de color de saturación HSV de este color.

Véase también saturationF(), hslSaturation(), getHsv() y The HSV Color Model.

[noexcept] float QColor::hsvSaturationF() const

Devuelve el componente de color de saturación HSV de este color.

Véase también saturation(), hslSaturationF(), getHsvF() y The HSV Color Model.

[noexcept] int QColor::hue() const

Devuelve el componente HSV del tono de este color.

El color se convierte implícitamente a HSV.

Véase también hsvHue(), hslHue(), hueF(), getHsv() y The HSV Color Model.

[noexcept] float QColor::hueF() const

Devuelve el componente HSV del tono de este color.

El color se convierte implícitamente a HSV.

Véase también hsvHueF(), hslHueF(), hue(), getHsvF() y The HSV Color Model.

[noexcept] bool QColor::isValid() const

Devuelve true si el color es válido; en caso contrario devuelve false.

[static noexcept, since 6.4] bool QColor::isValidColorName(QAnyStringView name)

Devuelve true si el name es un nombre de color válido y puede utilizarse para construir un objeto QColor válido, en caso contrario devuelve false.

Utiliza el mismo algoritmo que fromString().

Esta función se introdujo en Qt 6.4.

Véase también fromString().

[noexcept] QColor QColor::lighter(int factor = 150) const

Devuelve un color más claro (u oscuro), pero no cambia este objeto.

Si factor es mayor que 100, esta función devuelve un color más claro. Si se establece factor en 150, se obtiene un color un 50% más claro. Si factor es menor que 100, el color devuelto es más oscuro, pero recomendamos utilizar la función darker() para este propósito. Si factor es 0 o negativo, el valor de retorno no se especifica.

La función convierte el color actual a HSV, multiplica el componente de valor (V) por factor y vuelve a convertir el color a su especificación de color original.

Véase también darker() y isValid().

[noexcept] int QColor::lightness() const

Devuelve el componente de color de luminosidad de este color.

Véase también lightnessF() y getHsl().

[noexcept] float QColor::lightnessF() const

Devuelve el componente de color de luminosidad de este color.

Véase también value() y getHslF().

[noexcept] int QColor::magenta() const

Devuelve el componente de color magenta de este color.

Véase también magentaF(), getCmyk() y The CMYK Color Model.

[noexcept] float QColor::magentaF() const

Devuelve el componente de color magenta de este color.

Véase también magenta(), getCmykF() y The CMYK Color Model.

QString QColor::name(QColor::NameFormat format = HexRgb) const

Devuelve el nombre del color en la dirección format especificada.

Véase también fromString() y NameFormat.

[noexcept] int QColor::red() const

Devuelve el componente de color rojo de este color.

Véase también setRed(), redF() y getRgb().

[noexcept] float QColor::redF() const

Devuelve el componente de color rojo de este color.

Véase también setRedF(), red() y getRgbF().

[noexcept] QRgb QColor::rgb() const

Devuelve el valor RGB del color. El valor alfa es opaco.

Véase también setRgb(), getRgb() y rgba().

[noexcept] QRgba64 QColor::rgba64() const

Devuelve el valor RGB64 del color, incluido su alfa.

Para un color no válido, el valor alfa del color devuelto no se especifica.

Véase también setRgba64(), rgba() y rgb().

[noexcept] QRgb QColor::rgba() const

Devuelve el valor RGB del color, incluido su alfa.

Para un color no válido, el valor alfa del color devuelto no se especifica.

Véase también setRgba(), rgb() y rgba64().

[noexcept] int QColor::saturation() const

Devuelve el componente de color de saturación HSV de este color.

El color se convierte implícitamente a HSV.

Véase también hsvSaturation(), hslSaturation(), saturationF(), getHsv() y The HSV Color Model.

[noexcept] float QColor::saturationF() const

Devuelve el componente de color de saturación HSV de este color.

El color se convierte implícitamente a HSV.

Véase también hsvSaturationF(), hslSaturationF(), saturation(), getHsvF() y The HSV Color Model.

void QColor::setAlpha(int alpha)

Establece el alfa de este color en alpha. El alfa entero se especifica en el rango 0-255.

Véase también alpha(), alphaF(), y Alpha-Blended Drawing.

void QColor::setAlphaF(float alpha)

Establece el alfa de este color a alpha. float alpha se especifica en el rango 0.0-1.0.

Véase también alphaF(), alpha(), y Alpha-Blended Drawing.

void QColor::setBlue(int blue)

Establece el componente de color azul de este color en blue. Los componentes enteros se especifican en el rango 0-255.

Véase también blue(), blueF() y setRgb().

void QColor::setBlueF(float blue)

Establece el componente de color azul de este color en blue. Si blue se encuentra fuera del rango 0.0-1.0, el modelo de color se cambiará a ExtendedRgb.

Véase también blueF(), blue(), y setRgbF().

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

Establece el color en valores CMYK, c (cian), m (magenta), y (amarillo), k (negro) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar en el intervalo 0-255.

Véase también getCmyk(), setCmykF(), y The CMYK Color Model.

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

Establece el color en valores CMYK, c (cian), m (magenta), y (amarillo), k (negro) y a (canal alfa, es decir, transparencia).

Todos los valores deben estar comprendidos entre 0,0 y 1,0.

Véase también getCmykF(), setCmyk(), y The CMYK Color Model.

void QColor::setGreen(int green)

Establece el componente de color verde de este color en green. Los componentes enteros se especifican en el rango 0-255.

Véase también green(), greenF() y setRgb().

void QColor::setGreenF(float green)

Establece el componente de color verde de este color en green. Si green se encuentra fuera del rango 0.0-1.0, el modelo de color se cambiará a ExtendedRgb.

Véase también greenF(), green(), y setRgbF().

void QColor::setHsl(int h, int s, int l, int a = 255)

Establece un valor de color HSL; h es el matiz, s es la saturación, l es la luminosidad y a es el componente alfa del color HSL.

Los valores de saturación, valor y canal alfa deben estar en el rango 0-255, y el valor de matiz debe ser mayor que -1.

Véase también getHsl() y setHslF().

void QColor::setHslF(float h, float s, float l, float a = 1.0)

Establece la luminosidad de un color HSL; h es el tono, s es la saturación, l es la luminosidad y a es el componente alfa del color HSL.

Todos los valores deben estar en el rango 0.0-1.0.

Véase también getHslF() y setHsl().

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

Establece un valor de color HSV; h es el matiz, s es la saturación, v es el valor y a es el componente alfa del color HSV.

Los valores de saturación, valor y canal alfa deben estar en el rango 0-255, y el valor del tono debe ser mayor que -1.

Véase también getHsv(), setHsvF() y The HSV Color Model.

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

Establece un valor de color HSV; h es el tono, s es la saturación, v es el valor y a es el componente alfa del color HSV.

Todos los valores deben estar en el rango 0.0-1.0.

Véase también getHsvF(), setHsv() y The HSV Color Model.

void QColor::setRed(int red)

Establece el componente de color rojo de este color en red. Los componentes enteros se especifican en el rango 0-255.

Véase también red(), redF() y setRgb().

void QColor::setRedF(float red)

Establece el componente de color rojo de este color en red. Si red se encuentra fuera del rango 0.0-1.0, el modelo de color se cambiará a ExtendedRgb.

Véase también redF(), red(), y setRgbF().

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

Establece el valor RGB en r, g, b y el valor alfa en a.

Todos los valores deben estar en el rango 0-255.

Véase también rgb(), getRgb() y setRgbF().

[noexcept] void QColor::setRgb(QRgb rgb)

Establece el valor RGB en rgb. El valor alfa se establece en opaco.

Esta es una función sobrecargada.

[noexcept] void QColor::setRgba64(QRgba64 rgba)

Establece el valor RGB64 en rgba, incluyendo su alfa.

Véase también setRgba() y rgba64().

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

Establece los canales de color de este color en r (rojo), g (verde), b (azul) y a (alfa, transparencia).

El valor alfa debe estar en el rango 0.0-1.0. Si cualquiera de los otros valores está fuera del rango de 0,0-1,0 el modelo de color se establecerá como ExtendedRgb.

Véase también rgb(), getRgbF() y setRgb().

[noexcept] void QColor::setRgba(QRgb rgba)

Establece el valor RGB en rgba, incluyendo su alfa.

Véase también rgba(), rgb() y setRgba64().

[noexcept] QColor::Spec QColor::spec() const

Devuelve cómo se especificó el color.

Véase también Spec y convertTo().

[noexcept] QColor QColor::toCmyk() const

Crea y devuelve un CMYK QColor basado en este color.

Véase también fromCmyk(), convertTo(), isValid(), y The CMYK Color Model.

[noexcept] QColor QColor::toExtendedRgb() const

Crea y devuelve un RGB extendido QColor basado en este color.

Véase también toRgb y convertTo().

[noexcept] QColor QColor::toHsl() const

Crea y devuelve un HSL QColor basado en este color.

Véase también fromHsl(), convertTo(), isValid(), y The HSL Color Model.

[noexcept] QColor QColor::toHsv() const

Crea y devuelve un HSV QColor basado en este color.

Véase también fromHsv(), convertTo(), isValid(), y The HSV Color Model.

[noexcept] QColor QColor::toRgb() const

Crea y devuelve un RGB QColor basado en este color.

Véase también fromRgb(), convertTo() y isValid().

[noexcept] int QColor::value() const

Devuelve el componente de color del valor de este color.

Véase también valueF(), getHsv() y The HSV Color Model.

[noexcept] float QColor::valueF() const

Devuelve el componente de color del valor de este color.

Véase también value(), getHsvF() y The HSV Color Model.

[noexcept] int QColor::yellow() const

Devuelve el componente de color amarillo de este color.

Véase también yellowF(), getCmyk() y The CMYK Color Model.

[noexcept] float QColor::yellowF() const

Devuelve el componente de color amarillo de este color.

Véase también yellow(), getCmykF() y The CMYK Color Model.

QColor::operator QVariant() const

Devuelve el color como QVariant

[noexcept] bool QColor::operator!=(const QColor &color) const

Devuelve true si este color tiene una especificación de color o valores de componente diferentes de color; en caso contrario devuelve false.

ExtendedRgb y las especificaciones Rgb se consideran coincidentes en este contexto.

Véase también spec().

[noexcept] QColor &QColor::operator=(Qt::GlobalColor color)

Asigna una copia de color y devuelve una referencia a este color.

[noexcept] bool QColor::operator==(const QColor &color) const

Devuelve true si este color tiene la misma especificación de color y valores de componente que color; en caso contrario devuelve false.

ExtendedRgb y las especificaciones Rgb se consideran coincidentes en este contexto.

Véase también spec().

No miembros relacionados

QRgb

Un cuadruplo ARGB con el formato #AARRGGBB, equivalente a un int sin signo.

El tipo también contiene un valor para el canal alfa. El canal alfa por defecto es ff, es decir, opaco. Para más información, consulta la sección Alpha-Blended Drawing.

Estos son algunos ejemplos de cómo se pueden crear valores QRgb:

const QRgb rgb1 = 0x88112233;
const QRgb rgb2 = QColor("red").rgb();
const QRgb rgb3 = qRgb(qRed(rgb1), qGreen(rgb2), qBlue(rgb2));
const QRgb rgb4 = qRgba(qRed(rgb1), qGreen(rgb2), qBlue(rgb2), qAlpha(rgb1));

Véase también qRgb(), qRgba(), QColor::rgb(), y QColor::rgba().

[constexpr] int qAlpha(QRgb rgba)

Devuelve el componente alfa del cuadruplo ARGB rgba.

Véase también qRgb() y QColor::alpha().

[constexpr] uint qAlpha(QRgba64 rgba64)

Devuelve el componente alfa de rgba64 como un valor de 8 bits.

Véase también QRgba64::alpha8() y QColor::alpha().

[constexpr] int qBlue(QRgb rgb)

Devuelve el componente azul del cuadruplo ARGB rgb.

Véase también qRgb() y QColor::blue().

[constexpr] uint qBlue(QRgba64 rgba64)

Devuelve el componente azul de rgba64 como un valor de 8 bits.

Véase también QRgba64::blue8() y QColor::blue().

[constexpr] int qGray(int r, int g, int b)

Devuelve un valor de gris (0 a 255) de la tripleta (r, g, b).

El valor de gris se calcula mediante la fórmula (r * 11 + g * 16 + b * 5)/32.

[constexpr] int qGray(QRgb rgb)

Devuelve un valor de gris (0 a 255) del cuadruplo ARGB dado rgb.

El valor de gris se calcula utilizando la fórmula (R * 11 + G * 16 + B * 5)/32; el canal alfa se ignora.

Se trata de una función sobrecargada.

[constexpr] int qGreen(QRgb rgb)

Devuelve el componente verde del cuadruplo ARGB rgb.

Véase también qRgb() y QColor::green().

[constexpr] uint qGreen(QRgba64 rgba64)

Devuelve el componente verde de rgba64 como un valor de 8 bits.

Véase también QRgba64::green8() y QColor::green().

[constexpr] QRgb qPremultiply(QRgb rgb)

Convierte un cuadruplo ARGB no premultiplicado rgb en un cuadruplo ARGB premultiplicado.

Véase también qUnpremultiply().

[constexpr] QRgba64 qPremultiply(QRgba64 rgba64)

Convierte un cuadruplo QRgba64 no premultiplicado rgba64 en un cuadruplo QRgba64 premultiplicado.

Véase también QRgba64::premultiplied() y qUnpremultiply().

[constexpr] int qRed(QRgb rgb)

Devuelve el componente rojo del cuadruplo ARGB rgb.

Véase también qRgb() y QColor::red().

[constexpr] uint qRed(QRgba64 rgba64)

Devuelve el componente rojo de rgba64 como un valor de 8 bits.

Véase también QRgba64::red8() y QColor::red().

[constexpr] QRgb qRgb(int r, int g, int b)

Devuelve el cuadruplo ARGB (255, r, g, b).

Véase también qRgba(), qRed(), qGreen(), qBlue() y qAlpha().

[constexpr] QRgba64 qRgba64(quint64 c)

Devuelve c como una estructura QRgba64.

Véase también qRgba().

[constexpr] QRgba64 qRgba64(quint16 r, quint16 g, quint16 b, quint16 a)

Devuelve el cuadruplo QRgba64 (r, g, b, a).

Véase también qRgba().

[constexpr] QRgb qRgba(int r, int g, int b, int a)

Devuelve el cuadruplo ARGB (a, r, g, b).

Véase también qRgb(), qRed(), qGreen(), qBlue(), y qAlpha().

QRgb qUnpremultiply(QRgb rgb)

Convierte un cuadruplo ARGB premultiplicado rgb en un cuadruplo ARGB sin premultiplicar.

Véase también qPremultiply().

[constexpr] QRgba64 qUnpremultiply(QRgba64 rgba64)

Convierte un cuadruplo premultiplicado QRgba64 rgba64 en un cuadruplo no premultiplicado QRgba64.

Véase también QRgba64::unpremultiplied() y qPremultiply().

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

Escribe color en stream.

Véase también Serializar tipos de datos Qt.

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

Lee el color del stream.

Véase también Serializar tipos de datos Qt.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.