Python 使用css类的PyQt样式设置失败

Python 使用css类的PyQt样式设置失败,python,css,qt,pyqt,stylesheet,Python,Css,Qt,Pyqt,Stylesheet,我正在开发一个GUI,其中必须显示一些工具按钮。 我正在使用一个外部CSS文件来设置它们的样式。 为了方便起见,我定义了一个CSS类(带有setProperty),并在CSS文件中使用它来根据按钮的类更改按钮的外观 我的Python代码如下所示: ... bt = QtGui.QToolButton(parent.qtObject) bt . setToolButtonStyle ( QtCore.Qt.ToolButtonTextUnderIcon ) bt.setProperty('clas

我正在开发一个GUI,其中必须显示一些工具按钮。 我正在使用一个外部CSS文件来设置它们的样式。 为了方便起见,我定义了一个CSS类(带有setProperty),并在CSS文件中使用它来根据按钮的类更改按钮的外观

我的Python代码如下所示:

...
bt = QtGui.QToolButton(parent.qtObject)
bt . setToolButtonStyle ( QtCore.Qt.ToolButtonTextUnderIcon )
bt.setProperty('class','StaticButton')
bt.setStyleSheet(css_content)
...
我的CSS是这样的:

QToolButton.StaticButton
{
    border: 2px solid #4f4f51;
    border-radius: 5px;
    font-size: 10px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #e4e4c8, stop: 1 #b9b9a9);
}
问题是,只有按钮的背景受到影响。我尝试了许多替代方法,比如CSS文件中的
QToolButton[class=StaticButton]
,或者仅限于
.StaticButton
。这两种选择都导致了储蓄行为。 如果我直接在按钮上应用CSS,使用:

bt.setStyleSheet("border: 2px solid #4f4f51;border-radius: 5px;font-size: 10px;background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #e4e4c8, stop: 1 #b9b9a9);")
所有这些都可以完美地工作,但我不想在python代码中使用CSS

有人能告诉我我的代码出了什么问题吗?我不明白为什么使用background属性,而不使用其他属性

注意:我已经检查了导入的CSS,文件完全有效。我做了几次测试,每次,只有背景属性起作用。。。发生了什么事


谢谢

根据参考图纸设置属性将必须工作,但有一个恼人的事情。附言:我遭受这个问题大约一个月,然后承认失败

我的解决方案即将奏效。有点黑

bt = QToolButton(.)
bt.setObjectName("btStaticxxx") # xxx to any string
css


根据参考图纸,设置属性将必须工作,但有一个恼人的事情。附言:我遭受这个问题大约一个月,然后承认失败

我的解决方案即将奏效。有点黑

bt = QToolButton(.)
bt.setObjectName("btStaticxxx") # xxx to any string
css


你的意思是,我们需要在CSS中的类名之后使用
*
on吗?“*”在QToolButton上#btStatic*是一个通配符#btStatic*折叠“btStaticmybutton”或“btStatic2”。您的意思是,我们需要在CSS中的类名之后使用
*
on吗?“*”在QToolButton上#btStatic*是通配符#btStatic*折叠“btStaticmybutton”或“btStatic2”。