5

我有一个带有两个按钮的窗口。

我想用不同的样式表来装饰每一个。当然,它们都有不同的对象名称,但似乎只有通用QPushButton样式表选择器有效。

我试过了:

QPushButton#myBtnObjectName1 {

/* style definitions */

}
QPushButton#myBtnObjectName2 {

/* style definitions */

}

#尝试用 a替换 the.或拥有#myBtnObjetNameX唯一的相同。没有任何效果。只是:

QPushButton {
/* style definitions */
}

我使用了错误的语法吗?QPushButton或者如果不从代码中派生并为每个类使用单独的类名,这是否根本不可能?

4

3 回答 3

8

为此,您可以在 Qt Designer 中使用“accessibleName”。在 qss 样式表中:

更通用:

[accessibleName="alert-error"] {
    color: red;
}

或更具体:

QPushButton[accessibleName="bigred"] {
   background-color: red;
}
于 2015-09-14T19:51:24.460 回答
5

要使用 匹配实例objectName,您还可以使用选择器^=。根据标准

[att^=val] 表示具有 att 属性的元素,其值以前缀“val”开头。

Qt 中的示例:

QPushButton[objectName^="push"] { background-color: red; }

一个QPushButton被调用的pushButton将被匹配,但不是一个被调用的对象pbt

于 2018-04-04T10:56:01.373 回答
3

啊是的,Qt Designer中的“AccessibleName”也需要设置,而不仅仅是“ObjectName”

于 2011-02-07T18:59:57.870 回答