2011-12-20 6 views
8

Esto podría ser una pregunta fácil, pero estoy tratando de darle un color a un QLabel específico en mi aplicación y no funciona.PyQt le da color a un elemento específico

El código que he intentado es la siguiente:

nom_plan_label = QtGui.QLabel() 
nom_plan_label.setText(nom_plan_vignette) 
nom_plan_label.setStyleSheet("QLabel#nom_plan_label {color: yellow}") 

Cualquier sugerencia sería apreciada

Respuesta

17

Hay algunas cosas mal con el stylesheet syntax que está utilizando.

En primer lugar, los selectores ID (es decir, #nom_plan_label) deben hacer referencia al objectName del widget.

En segundo lugar, solo es necesario usar selectores cuando se aplica una hoja de estilos a un widget ancestro y desea que ciertas reglas de estilo se distribuyan en cascada a determinados widgets descendientes. Si está aplicando la hoja de estilo directamente a un widget, el selector (y llaves) se pueden omitir.

Teniendo en cuenta los dos puntos anteriores, el código de ejemplo podría convertirse ya sea:

nom_plan_label = QtGui.QLabel() 
nom_plan_label.setText(nom_plan_vignette) 
nom_plan_label.setObjectName('nom_plan_label') 
nom_plan_label.setStyleSheet('QLabel#nom_plan_label {color: yellow}') 

o, más simplemente:

nom_plan_label = QtGui.QLabel() 
nom_plan_label.setText(nom_plan_vignette) 
nom_plan_label.setStyleSheet('color: yellow') 
+0

El único tiempo posible Creo que esta solución podría causar un problema es como se dijo, con widgets infantiles. Entonces, si de alguna manera terminara agregando widgets como hijos de la etiqueta, ellos elegirían ese valor de color. Si aún usa al menos el selector QLabel, lo limitaría a QLabels desde aquí y debajo – jdi

Cuestiones relacionadas