¿Cómo configuro el color del texto y el fondo de a QLabel
?
180
La mejor forma recomendada es usar Qt Style Sheet .
Para cambiar el color del texto y el color de fondo de a QLabel
, esto es lo que haría:
QLabel* pLabel = new QLabel;
pLabel->setStyleSheet("QLabel { background-color : red; color : blue; }");
También puede evitar usar Qt Style Sheets y cambiar los QPalette
colores de su QLabel
, pero puede obtener resultados diferentes en diferentes plataformas y / o estilos.
Como dice la documentación de Qt:
El uso de una QPalette no garantiza que funcione para todos los estilos, porque los autores de estilos están restringidos por las pautas de las diferentes plataformas y por el motor de temas nativo.
Pero podrías hacer algo como esto:
QPalette palette = ui->pLabel->palette();
palette.setColor(ui->pLabel->backgroundRole(), Qt::yellow);
palette.setColor(ui->pLabel->foregroundRole(), Qt::yellow);
ui->pLabel->setPalette(palette);
Pero como dije, sugiero no usar la paleta y buscar Qt Style Sheet.
color
atributo es ineficaz. Solo a través de HTML<font color="#FFFFFF">...</font>
pude configurar el color de la fuente (en blanco en este caso.color: ;
como "reinicio" parece hacerlo, pero ¿es una buena práctica o hay un método mejor?Puede usar QPalette, sin embargo, debe configurarlo
setAutoFillBackground(true);
para habilitar el color de fondoFunciona bien en Windows y Ubuntu, no he jugado con ningún otro sistema operativo.
Nota: Consulte QPalette , sección de roles de color para obtener más detalles.
fuente
Agrego esta respuesta porque creo que podría ser útil para cualquiera.
Entro en el problema de configurar colores RGBA (es decir, color RGB con un valor Alfa para transparencia) para las etiquetas de visualización de color en mi aplicación de pintura.
Cuando encontré la primera respuesta, no pude establecer un color RGBA. También he probado cosas como:
myLabel.setStyleSheet("QLabel { background-color : %s"%color.name())
donde
color
es un color RGBA.Entonces, mi solución sucia era extender
QLabel
y anularpaintEvent()
método llenando su rectificador de límite.Hoy, he abierto
qt-assistant
y leído la lista de propiedades de referencia de estilo . Afortunadamente, tiene un ejemplo que establece lo siguiente:QLineEdit { background-color: rgb(255, 0, 0) }
Eso me abre la mente al hacer algo como el siguiente código, como ejemplo:
Tenga
setAutoFillBackground()
en cuenta que establece enFalse
no lo hará funcionar.Saludos,
fuente
Lo ÚNICO que funcionó para mí fue html.
Y descubrí que es mucho más fácil de hacer que cualquiera de los enfoques programáticos.
El siguiente código cambia el color del texto en función de un parámetro pasado por una persona que llama.
fuente
<font/>
etiqueta (y es algo más familiar para las personas HTML: D) y no solo un color, por lo tanto, le brinda una mayor flexibilidad.La mejor manera de configurar cualquier característica con respecto a los colores de cualquier widget es usar QPalette .
Y la forma más fácil de encontrar lo que está buscando es abrir Qt Designer y configurar la paleta de un QLabel y verificar el código generado.
fuente
Este funciona perfecto
getColor()
El método devuelve el color seleccionado. Puede cambiar el color de la etiqueta usandostylesheet
fuente