2011-12-20 9 views
8

Questa potrebbe essere una domanda facile, ma sto cercando di assegnare un colore a una QLabel specifica nella mia applicazione e non funziona.PyQt dà colore a un elemento specifico

Il codice ho provato è il seguente:

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

Qualsiasi suggerimento sarebbe apprezzato

risposta

17

Ci sono alcune cose sbagliate con la stylesheet syntax che si sta utilizzando.

In primo luogo, i selettori ID (ad esempio #nom_plan_label) devono fare riferimento al widget objectName.

In secondo luogo, è necessario utilizzare i selettori solo quando un foglio di stile viene applicato a un widget antenato e si desidera che determinate regole di stile si sovrappongano a determinati widget discendenti. Se stai applicando il foglio di stile direttamente a un widget, il selettore (e le parentesi graffe) possono essere esclusi.

Dato questi due punti, il codice di esempio potrebbe diventare o:

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, più semplicemente:

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

L'unico tempo possibile Credo che questa soluzione sarebbe causare un problema è come te detto, con i widget figlio. Quindi, se in qualche modo ha finito per aggiungere widget come figli dell'etichetta, avrebbero preso quel valore di colore. Se hai comunque utilizzato almeno il selettore QLabel, lo limiterebbe a QLabels da qui e in basso – jdi

Problemi correlati