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

为此,我创建了以下样式表:
QCheckBox { background-color : cyan; }
QCheckBox::indicator { width : 20px; height : 20px; }不幸的是,结果不是我所期望的,以下是我得到的结果:

但我想要所有的背景与颜色青色。我已经检查了关于StyleSheet的Qt文档,也检查了一些老问题,但是没有一个问题对我有帮助。当我添加QCheckBox::indicator{ background-color : cyan; }时,按钮变成了所有的青色(就像在状态未选中的第一个图像上),处于选中状态和未选中状态。再加上像border这样的礼仪对我也没有帮助。
我也尝试使用QPalette,但从未改变过。
这是我的代码:
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
我最近发现应用程序的风格对它有影响。我使用了微风风格,改变了融合风格,使它像预期的那样工作。唯一的问题是,它需要更改应用程序本身的主题。无论如何,下面是代码示例,以防它对任何人有帮助:
#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();
}发布于 2020-09-14 07:54:50
我没有使用样式表命令解决我的问题,实际上我认为来源是不可能的。
无论如何,我能够实现我的目标,用一个图像作为检查状态,另一个图像用于未检查状态,如下所示。
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();发布于 2020-09-14 07:57:11
很可能
QCheckBox::indicator:unchecked {background-color : cyan;});是你想看到的。
编辑:太迟了
https://stackoverflow.com/questions/63878026
复制相似问题