PyQt дает цвет для конкретного элемента - PullRequest
12 голосов
/ 20 декабря 2011

Это может быть простой вопрос, но я пытаюсь придать цвет определенной QLabel в моем приложении, и он не работает.

Код, который я пробовал, следующий:

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

Любая подсказка будет оценена

1 Ответ

23 голосов
/ 20 декабря 2011

С синтаксисом таблицы стилей , который вы используете, есть несколько неправильных.

Во-первых, селекторы ID (т.е. #nom_plan_label) должны ссылаться на objectNamewidget.

Во-вторых, использовать селекторы необходимо только тогда, когда таблица стилей применяется к виджету-предку, и вы хотите, чтобы определенные правила стиля каскадно сворачивались к конкретным виджетам-потомкам.Если вы применяете таблицу стилей непосредственно к одному виджету, селектор (и фигурные скобки) может быть опущен.

Учитывая два приведенных выше пункта, ваш пример кода будет выглядеть так:

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