背景:
我有一个由多个对话框和窗口组成的Qt应用程序。我正在尝试将所有样式压缩到一个样式表中,我想将其加载到我的main.cpp
中,目的是将其应用于我的整个应用程序(据我所知(。从现在开始,应用程序不应更改样式。
我想这样做,因为如果有人这样做或对 QtCreator 设计器中的每个小部件进行简单处理,样式可能会混淆等。
问题:
我将用我的应用程序中的示例来解释我面临的一个特定问题。
我有几个简单对话框的变体,QLabel标题,QLabel消息(有时是QLabel提示(,以及单个"确定"QPushButton或2个QPushButton"积极"和"消极"。
对于我的主题,我想为从这里获得的特定按钮、标签等设置样式。
示例 CSS:
QPushButton {
font-size: 10pt
color: #111
}
QPushButton[objectName="btnPostive"][objectName="btnProceed"] {
font-size: 1pt
color: #ccc
}
QLabel {
font-size: 9pt
color: #111
}
QLabel[objectName="lblTitle"] {
font-size: 9pt
color: #111
}
请注意,该[objectName="btnPostive"][objectName="btnProceed"]
旨在将样式应用于带有objectName
btnPostive
的按钮,btnProceed
但事实并非如此。
我打算做的是被认为是最佳实践,以及将相同样式应用于一组精选小部件的子问题(也是首选示例(,应该如何最好。
如果要根据对象名称控制应用的样式表,可以使用ID 选择器QPushButton#objectName
,请参阅完整文档。 您可以使用同一样式表分隔多个对象,
然后你的样式表应该是这个。 请注意,您还需要在每行末尾加一个;
。
QPushButton {
font-size: 10pt;
color: #111;
}
QPushButton#btnPositive, QPushButton#btnProceed {
font-size: 1pt;
color: #ccc;
}
QLabel {
font-size: 9pt;
color: #111;
}
QLabel#lblTitle {
font-size: 9pt;
color: #00f;
}