PyQt为特定元素添加颜色

19

这可能是一个简单的问题,但我试图给我的应用程序中的特定QLabel设置颜色,但它不起作用。

我尝试的代码如下:

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

希望能得到任何提示。

1个回答

33

你所使用的 样式表语法 存在几个问题。

首先,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')

我认为这种解决方案可能会导致问题的唯一情况就像你所说的,与子小部件有关。因此,如果他以某种方式将小部件添加为标签的子级,则它们将获取该颜色值。如果您仍然至少使用QLabel选择器,它将限制为从此处及以下的QLabels。 - jdi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接