首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变QCheckBox的背景色

改变QCheckBox的背景色
EN

Stack Overflow用户
提问于 2020-09-14 04:17:20
回答 2查看 2.3K关注 0票数 1

我希望有一个具有以下样式的复选框:

为此,我创建了以下样式表:

代码语言:javascript
复制
QCheckBox { background-color : cyan; }
QCheckBox::indicator { width : 20px; height : 20px; }

不幸的是,结果不是我所期望的,以下是我得到的结果:

但我想要所有的背景与颜色青色。我已经检查了关于StyleSheet的Qt文档,也检查了一些老问题,但是没有一个问题对我有帮助。当我添加QCheckBox::indicator{ background-color : cyan; }时,按钮变成了所有的青色(就像在状态未选中的第一个图像上),处于选中状态和未选中状态。再加上像border这样的礼仪对我也没有帮助。

我也尝试使用QPalette,但从未改变过。

这是我的代码:

代码语言:javascript
复制
    QWidget* w = new QWidget();

    QCheckBox* cb = new QCheckBox(w);

    cb->setFixedSize(20, 20);
    cb->setStyleSheet(QString("QCheckBox { background-color : cyan; }") + '\n' +
                      "QCheckBox::indicator { width : 20px; height : 20px; border : }");
    w->show();

编辑28/09/2020

我最近发现应用程序的风格对它有影响。我使用了微风风格,改变了融合风格,使它像预期的那样工作。唯一的问题是,它需要更改应用程序本身的主题。无论如何,下面是代码示例,以防它对任何人有帮助:

代码语言:javascript
复制
#include <QApplication>
#include <QWidget>
#include <QCheckBox>


int main(int argc, char** argv)
{
    QApplication a(argc, argv);
    qApp->setStyle(QStyleFactory::create("Fusion"));
    QWidget* w = new QWidget();

    QCheckBox* cb = new QCheckBox(w);

    cb->setFixedSize(20, 20);
    cb->setStyleSheet(QString("QCheckBox { background-color : cyan; }") + '\n' +
                      "QCheckBox::indicator { width : 20px; height : 20px; border : }");
    w->show();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-14 07:54:50

我没有使用样式表命令解决我的问题,实际上我认为来源是不可能的。

无论如何,我能够实现我的目标,用一个图像作为检查状态,另一个图像用于未检查状态,如下所示。

代码语言:javascript
复制
    QWidget* w = new QWidget();

    QCheckBox* cb = new QCheckBox(w);

    cb->setFixedSize(20, 20);
    cb->setStyleSheet("QCheckBox::indicator { width : 20; height : 20; }\n"
                      "QCheckBox::indicator::unchecked { image : url(/path/**/unchecked.png); }\n"
                      "QCheckBox::indicator::checked { image : url(/path/**/checked.png); }");
    w->show();
票数 1
EN

Stack Overflow用户

发布于 2020-09-14 07:57:11

很可能

代码语言:javascript
复制
QCheckBox::indicator:unchecked {background-color : cyan;});

是你想看到的。

编辑:太迟了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63878026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档