1

当我改变 Qt 组合框的背景颜色时,组合框的背景颜色也随之改变。这是在组框内。我想要组合框的默认颜色,所以这就是我不更改组合框的背景颜色的原因。请告诉我如何在不更改内部项目的默认 bg-color 的情况下更改 Qt 组框的背景颜色。我使用 qt 设计器 (ui) 中的样式表更改了 QT 组框的背景。我是初学者请帮助。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

1

您应该按照以下步骤操作:

  1. 为您的对象设置特定名称:

在此处输入图像描述

  1. 选择父对象并向父对象添加样式表,如下所示:

在此处输入图像描述

  1. 这是样式表:

    QGroupBox#gBox1 { 背景颜色:rgb(138, 226, 52); }

首先,你应该设置你想要什么样的QGroupBox,并且对于设置样式,你在其后调用它的对象名称的特定对象#

  1. 输出 :

在此处输入图像描述

于 2021-11-02T07:31:41.410 回答
0

在此处输入图像描述

带有样式的简单项目

#include <QtCore>
#include <QtGui>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QGroupBox GroupBox;
    GroupBox.setMinimumSize(QSize(400, 400));
    GroupBox.setStyleSheet("QGroupBox {background-color: green}");
    
    QComboBox Combo1, Combo2;
    Combo1.setStyleSheet("QComboBox {background-color: yellow}");
    Combo2.setStyleSheet("QComboBox {background-color: red}");

    Combo1.addItem("Test1");
    Combo1.addItem("Test2");

    Combo2.addItem("Test3");
    Combo2.addItem("Test4");

    QVBoxLayout vbox;
    vbox.addWidget(&Combo1);
    vbox.addWidget(&Combo2);

    GroupBox.setLayout(&vbox);
    GroupBox.show();

    return a.exec();
}

您也可以更改对象名称“setObjectName(const QString &)”函数,然后使用该名称设置不同对象的样式

    Combo1.setObjectName("TestObject");
    Combo1.setStyleSheet("QComboBox#TestObject {background-color: yellow}");
于 2021-11-02T07:58:39.257 回答