【QT】stackedWidget设置背景等属性设置不了/只能改变某一页

只记录本人遇到的,情况往往多变,本文没有涉及的请再自行查找。
仅作整理记录方便日后再用。

问题描述:
Groupbox里面包含了一个stackedWidget,stackedWidget里面放了一个pushbutton,在GroupBox中设置stackedWidget的背景属性设置不上。
单独用stackedWidget设置也设置不上。稍微调整之后只能改变某一页的。最后搞了个循环循环设置每一页才将所有页设置上的。

1. 最初代码

ui->groupBox->setStyleSheet(
            "QGroupBox {"
                     "background-color: rgb(240,243,248);"
            "}"
            "QStackedWidget {"
                     "background-color: rgb(240,243,248);"
            "}"
            "QPushButton {"
                     "border-style: solid;"
                     "border-radius: 10px;"
                     "border-color: rgb(211,232,254);"
                     "border-width: 2px;"
                     "background-color: rgb(217,237,252);"
                     "color: rgb(56,78,119);"
                     "font: 12pt SimHei;"
            "}"
);

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以看到只有第1页上的pushbutton属性被改变了,第0页和第2页的没有被改变。
也可以看到stackedWidget的背景颜色,每一页都没被设置,还是白色。

2. 把stackedWidget加作用的范围(使用 > QWidget)

        ui->groupBox->setStyleSheet(
                    "QGroupBox {"
                             "background-color: rgb(240,243,248);"
                    "}"
                   "QStackedWidget > QWidget {"
                             "background-color: rgb(240,243,248);"
                    "}"
                    "QPushButton {"
                             "border-style: solid;"
                             "border-radius: 10px;"
                             "border-color: rgb(211,232,254);"
                             "border-width: 2px;"
                             "background-color: rgb(217,237,252);"
                             "color: rgb(56,78,119);"
                             "font: 12pt SimHei;"
                    "}"
        );

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到第1页上的stackedWidget的背景颜色改变了,pushbutton属性也改变了,但第0页和第2页的还是没有被改变。

3. 循环设置每一页

        ui->groupBox->setStyleSheet(
                    "QGroupBox {"
                             "background-color: rgb(240,243,248);"
                    "}"
                    "QPushButton {"
                             "border-style: solid;"
                             "border-radius: 10px;"
                             "border-color: rgb(211,232,254);"
                             "border-width: 2px;"
                             "background-color: rgb(217,237,252);"
                             "color: rgb(56,78,119);"
                             "font: 12pt SimHei;"
                    "}"
        );

        for (int i = 0; i < ui->stackedWidget->count(); ++i) {
            ui->stackedWidget->widget(i)->setStyleSheet("QStackedWidget > QWidget {"
                                                        "background-color: rgb(240,243,248);"
                                                       "}"
                                                        );
        }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以了,问题解决了

再次重申,只记录本人遇到的,情况往往多变,本文没有涉及的请再自行查找。
仅作整理记录方便日后再用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值