我有一个带有两个按钮的窗口。
我想用不同的样式表来装饰每一个。当然,它们都有不同的对象名称,但似乎只有通用的
QPushButton
样式表选择器才有效。
我尝试过:
QPushButton#myBtnObjectName1 {
/* style definitions */
}
QPushButton#myBtnObjectName2 {
/* style definitions */
}
尝试用
#
替换 .
,或仅使用 #myBtnObjetNameX
。什么都不起作用。只是:
QPushButton {
/* style definitions */
}
我使用了错误的语法吗?或者,如果不从代码中的
QPushButton
派生并为每个类使用单独的类名,这根本不可能吗?
要使用
objectName
匹配实例,您还可以使用选择器 ^=
。根据标准:
[att^=val] 表示具有 att 属性的元素,其值 以前缀“val”开头。
Qt 中的示例:
QPushButton[objectName^="push"] { background-color: red; }
一个名为
QPushButton
的 pushButton
将被匹配,但不会匹配名为 pbt
的对象。
您可以在 Qt Designer 中使用“accessibleName”来实现此目的。 在 qss 样式表中:
更通用:
[accessibleName="alert-error"] {
color: red;
}
或更具体:
QPushButton[accessibleName="bigred"] {
background-color: red;
}
啊是的,Qt Designer 中的“AccessibleName”也需要设置,而不仅仅是“ObjectName”
如果我的对象的名称是 EDL_YELLOW_NAME 怎么办...有没有办法我可以应用 QPushButton[objectName^="EDL_"] 然后采用“YELLOW”部分来分配颜色?与其他标签?创建更好的通配符