我正在开发一个必须显示一些工具按钮的 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);
}
问题是只有按钮的背景受到影响。我尝试了许多替代方案,例如QToolButton[class=StaticButton]
在 CSS 文件中或.StaticButton
仅在 CSS 文件中。两种选择都导致了保存行为。如果我直接在按钮上应用 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。
有人可以告诉我我的代码有什么问题吗?我不明白为什么使用背景属性而不使用其他属性。
注意:我检查了导入的 CSS,文件完全有效。我做了几次测试,每次只有背景属性有效......发生了什么?
谢谢