如何让Qt小部件忽略在父窗口小部件上设置的样式表?

His*_*oud 12 qt

在Qt Designer中添加QComboBox控件时,我得到了一个非常糟糕的非本机控件:

在此输入图像描述

在进一步挖掘时,事实证明,两个父控件QParentWindow和QStackedWidget具有QComboBox继承的样式表.如果我删除自定义样式,那么我会得到一个原生的QComboBox,如左边那个.

我怎样才能让QComboBox(和小部件一般)不继承父样式?或者,我怎样才能为QParentWindow创建一个样式,并且这样做只是为了本地而不是级联?

Lei*_*iaz 5

我认为你不能阻止它级联.但是通过在样式表中使用更具体的选择器,可能只能为QParentWindow类或特定对象定义属性.

  • 谢谢,这非常有帮助.似乎使用以下特定选择器语法QWidget#my_container_name*确实将样式保持为名称为my_container_name的QWidget的本地样式,并防止其级联. (5认同)

小智 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);
Run Code Online (Sandbox Code Playgroud)

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