PyQt中的样式表伪状态语法

时间:2012-02-07 22:32:02

标签: python pyqt qtstylesheets

我有各种PushButtons漫游我的脚本,我正在加载外部css文件来处理我的软件中的大量小部件。我已经到了这样的程度,我不得不按类别搜索按钮并尝试定义某些属性。对按钮的泛型调用,如:QFrame:QPushButton #btnName {css:blah;正在工作,但伪状态不是:特别是悬停和按下。这是我正在尝试的:

--THIS WORKS
QFrame:QPushButton #btnName { css: blah; }

--THESE DO NOT
QFrame:QPushButton:hover #btnName { css: hoverstuff; }
QFrame:QPushButton:pressed #btnName { css: pressedstuff; }

表格中有很多css样式;这可能是这些线“上方”的问题吗?我的语法对于伪状态是错误的吗?是什么赋予了!?提前谢谢。

1 个答案:

答案 0 :(得分:5)

您使用的当前语法在所有示例中都是错误的。

选择器QFrame:QPushButton将忽略:QPushbutton,因为它不是有效的pseudo-state。此外,ID选择器之前的空间意味着该规则将应用于名为#btnName所有后代对象(这可能不是您想要的,但这也是为什么第一个示例类型的工作原理)。

我认为您真正想要的是规则适用于QPushButton的{​​{1}}个“btnName”,它也是objectName的后代。

在这种情况下,第一条规则应该是:

QFrame

另外两条规则应该是:

QFrame QPushButton#btnName { css: blah; }

有关选择器类型的更多详细信息,请参阅here