2011-12-20 88 views
8

這可能是一個簡單的問題,但我試圖給我的應用程序中的特定QLabel的顏色,它不起作用。PyQt給特定元素的顏色

我試過的代碼如下:

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

任何暗示將不勝感激

回答

17

有幾件事情錯的stylesheet syntax您使用。

首先,ID選擇器(即#nom_plan_label)必須參考小部件的objectName

其次,只有在將樣式表應用於祖先窗口小部件時才需要使用選擇器,並且您希望某些樣式規則可以級聯到特定的後代窗口小部件。如果您將樣式表直接應用於一個小部件,則可以省略選擇器(和大括號)。

鑑於上述兩點,那麼你的示例代碼將成爲兩種:

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}') 

,或者更簡單地說:

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

唯一可能的時候,我覺得這個解決方案會導致一個問題,就是像你說,與孩子小部件。因此,如果他以某種方式結束添加小部件作爲標籤的孩子,他們會拿起該顏色值。如果您至少仍然使用QLabel選擇器,則會將其限制爲從這裏和下面的QLabel – jdi 2011-12-20 17:27:26