更改 QCheckBox 的背景颜色

Posted

技术标签:

【中文标题】更改 QCheckBox 的背景颜色【英文标题】:Changing Background color of QCheckBox 【发布时间】:2020-09-14 04:17:20 【问题描述】:

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

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

QCheckBox  background-color : cyan; 
QCheckBox::indicator  width : 20px; height : 20px; 

遗憾的是结果不是我所期望的,这是我得到的:

但我希望所有背景都为青色。 我检查了Qt Documentation About StyleSheet 并且还检查了一些旧问题,但没有一个对我有用。当我添加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

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

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

【问题讨论】:

【参考方案1】:

大概

QCheckBox::indicator:unchecked background-color : cyan;);

是你想看到的。

编辑:太晚了

【讨论】:

【参考方案2】:

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

无论如何,我能够使用一张图片作为选中状态,另一张图片作为未选中状态来实现我的目标,如下所示。

    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 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改 QCheckBox 指示器矩形颜色

在Ubuntu里 可以任意更改“终端”背景颜色教程

Android怎么动态更改actionbar的背景颜色

自定义标签栏背景颜色。如何更改标签栏背景的颜色?

如何用js更改tr的背景颜色 新手求助

UITableViewHeaderFooterView:无法更改背景颜色