如何使 Qt 小部件忽略父小部件上设置的样式表?

问题描述 投票:0回答:2

在 Qt Designer 中添加 QComboBox 控件时,我得到一个看起来很糟糕的非本机控件:

进一步挖掘,发现两个父控件 QParentWindow 和 QStackedWidget 具有 QComboBox 继承的样式表。如果我删除自定义样式,那么我会得到一个本机 QComboBox,如左侧所示。

如何让 QComboBox(以及一般的小部件)不继承父样式?或者,我如何为 QParentWindow 创建样式,并使其仅是本地的并且不会级联?

qt parent-child qtstylesheets
2个回答
6
投票

我认为你无法阻止它级联。但是通过在样式表中使用更具体的选择器,也许您可以仅为 QParentWindow 类或特定对象定义属性。


5
投票

您需要定义一个样式,然后将其分配给该对象:

QString settingStyle = " QGroupBox#groupBoxSettings {\
        background-color: rgb(248,248,248);\
        border: 1px solid rgb(170, 170, 255);\
        border-radius: 3px;\
        border-color:rgb(170, 170, 255);\
}";


ui->groupBoxSettings->setStyleSheet(settingStyle);

这里的“groupBoxSettings”是对象名称。这样,组框中的任何内容都会有自己的风格。

© www.soinside.com 2019 - 2024. All rights reserved.