C++ 更改QCheckBox的背景色

C++ 更改QCheckBox的背景色,c++,qt,qt5,C++,Qt,Qt5,我想要一个具有以下样式的复选框: 为此,我创建了以下样式表: QCheckBox{背景色:青色;} QCheckBox::指示器{宽度:20px;高度:20px;} 遗憾的是,结果出乎我的意料,以下是我得到的: 但我想要所有的背景都是青色的。 我已经检查了,也检查了一些旧问题,但没有一个对我有用。当我添加QCheckBox::indicator{background color:cyan;}时,按钮在选中和未选中状态下都变成了全青色(就像在未选中状态的第一张图像上一样)。添加诸如borde

我想要一个具有以下样式的复选框:

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

QCheckBox{背景色:青色;}
QCheckBox::指示器{宽度:20px;高度:20px;}
遗憾的是,结果出乎我的意料,以下是我得到的:

但我想要所有的背景都是青色的。 我已经检查了,也检查了一些旧问题,但没有一个对我有用。当我添加
QCheckBox::indicator{background color:cyan;}
时,按钮在选中和未选中状态下都变成了全青色(就像在未选中状态的第一张图像上一样)。添加诸如
border
之类的其他礼节对我都没有帮助

我也尝试使用Qpalete,但从未改变

这是我的密码:

    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();

编辑日期:2020年9月28日

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

#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();
}
#包括
#包括
#包括
int main(int argc,字符**argv)
{
质量保证申请a(argc、argv);
qApp->setStyle(QStyleFactory::create(“Fusion”);
QWidget*w=新的QWidget();
QCheckBox*cb=新的QCheckBox(w);
cb->setFixedSize(20,20);
cb->setStyleSheet(QString(“QCheckBox{background color:cyan;}”)+'\n'+
“QCheckBox::指示符{宽度:20px;高度:20px;边框:}”);
w->show();
}

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

不管怎么说,我能够实现我的目标,使用一个图像作为选中状态,另一个图像作为未选中状态,如下所示

    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();
大概

QCheckBox::indicator:unchecked {background-color : cyan;});
是你想看的

编辑:太晚了