Python PyQt中的样式表伪状态语法

Python PyQt中的样式表伪状态语法,python,pyqt,qtstylesheets,Python,Pyqt,Qtstylesheets,我的脚本中有各种各样的按钮,我正在加载一个外部css文件来处理软件中大量的小部件。我已经到了必须按类查找按钮并试图定义某些属性的地步。对按钮的一般调用,如:QFrame:QPushButton#btnName{css:blah;}正在工作,但是伪状态不是:特别是悬停和按下。以下是我正在尝试的: --THIS WORKS QFrame:QPushButton #btnName { css: blah; } --THESE DO NOT QFrame:QPushButton:hover #btnN

我的脚本中有各种各样的按钮,我正在加载一个外部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样式;这可能是一个什么是'以上'这些线的问题吗?我的伪状态语法错了吗?什么给你!?提前感谢。

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

选择器
QFrame:QPushButton
将简单地忽略
:QPushButton
,因为它不是有效的。此外,ID选择器前面的空格意味着该规则将应用于所有名为
#btnName
的子体对象(这可能不是您想要的,但这也是第一个示例排序仍然有效的原因)

我假设您真正想要的是将规则应用于任何
QPushButton
,其
objectName
为“btnName”,这也是
QFrame
的后代

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

QFrame QPushButton#btnName { css: blah; }
QFrame QPushButton#btnName:hover { css: hoverstuff; }
QFrame QPushButton#btnName:pressed { css: pressedstuff; }
另外两条规则应该是:

QFrame QPushButton#btnName { css: blah; }
QFrame QPushButton#btnName:hover { css: hoverstuff; }
QFrame QPushButton#btnName:pressed { css: pressedstuff; }

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

这很有趣。这种语法对我不起作用。你确定它在那里工作吗?实际上,它应该是
QFrame QPushButton#btnName
。注意空格和缺少的冒号。对于伪状态,您应该执行
QFrame-QPushButton#btnName:hover
。像往常一样,是个人救世主,ekhu。谢谢