在使用C ++&amp ;;的GUI项目中QT,我想将样式应用于QSS文件。在项目中,我通过以下方式在不同的命名空间中有几个类:
|-- namespaceA
|-- subnamespaceA
|-- class1
`-- class2
|-- subnamespaceB
|-- class3
`-- class4
`-- subnamespaceC
|-- class5
`-- class6
|-- namespaceB
`-- class7
`-- namespaceC
`-- class8
根据The Style Sheet Syntax,样式可以应用于命名空间中的类,如下所示:
namespace--class selector
{
...
}
现在假设我想为namespaceA
(1-6级)下的所有类中的每个QLabel设置文本颜色。
显然,这可以针对每个类单独完成:
namespaceA--subnamespaceA--class1 QLabel,
namespaceA--subnamespaceA--class2 QLabel,
namespaceA--subnamespaceB--class3 QLabel,
namespaceA--subnamespaceB--class4 QLabel,
namespaceA--subnamespaceC--class5 QLabel,
namespaceA--subnamespaceC--class6 QLabel
{
color: red;
}
另一种可能性是全局定义与特定于命名空间的对象名称(QLabel::setObjectName("objectInNamespaceA")
)相结合,与ID选择器匹配:
QLabel#objectInNamespaceA
{
color: red;
}
由于这两种解决方案都有些不灵活并导致更多(不必要的)代码,我想知道这是否可以像以下非工作方法那样完成?
namespaceA QLabel
{
color: red;
}