使用属性选择器为整个应用程序提供QT StyleSheet主题。

问题描述 投票:1回答:1

背景:我有一个Qt应用程序,由多个对话框和窗口组成。

我有一个由多个对话框和窗口组成的Qt应用程序。我想把所有的样式压缩成一个样式表,并将其加载到我的应用程序中。main.cpp 的目的是将其应用于我的整个应用程序(我认为应该这样做)。从这一点上看,应用程序不应该改变风格。

我想这样做,因为如果一个人做了这样的事情,风格可能会混淆,等等。这个 或类似于QtCreator设计器中每个widget的东西。

问题:我将用我的应用程序中的一个例子来解释我所面临的具体问题。

我将用我的应用程序中的一个例子来解释我面临的一个具体问题。

我有几个简单对话框的变化,QLabel标题,QLabel消息(有时是QLabel提示),以及一个单一的 "ok "QPushButton或2个QPushButtons "positive"& "negative"。

在我的主题中,我想为特定的按钮、标签等设置样式,我从 此处.

示例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's btnPostivebtnProceed 然而,它没有。

我打算做的事情被认为是最好的实践,和一个子问题(也是首选的例子)应用相同的风格到一组选定的小部件,应该如何最好的。

c++ css qt qwidget qtstylesheets
1个回答
0
投票

如果你想根据对象名称来控制应用的样式表,你可以使用 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;
} 
© www.soinside.com 2019 - 2024. All rights reserved.