【问题标题】:Changing QCheckBox text color更改 QCheckBox 文本颜色
【发布时间】:2014-05-10 18:55:45
【问题描述】:

我在那里发现了同样的问题: how to change QCheckBox text label color in Qt?

但不幸的是,这对我在 mac 上不起作用。

在 Linux 和 Windows 上,默认情况下 QWidget(QLabel、QCheckBox、QRadioButton)的文本是白色的。 在mac上,它是黑色的。不幸的是,这会导致我的屏幕出现问题,因为文本不可读(我有黑色背景)..

我已经派生了 QCheckBox 类,所以在你得到的构造函数中:

class MPUBLIC MythCheckBox: public QCheckBox
{
    Q_OBJECT

  public:
    MythCheckBox(QWidget *parent = 0, const char *name = "MythCheckBox")
        : QCheckBox(parent)
    {
        setObjectName(name);
#ifdef Q_OS_MAC
//        setStyleSheet("QCheckBox { color : white; }; QCheckBox::indicator { color:black; }");
        QPalette p = palette();
        p.setColor(QPalette::WindowText, Qt::white);
        setPalette(p);
#endif
    };

如果我使用如下样式表:

setStyleSheet("QCheckBox { color : white; }; QCheckBox::indicator { color:black; }");

然后我的文本是我想要的白色,但复选标记本身变得不可见......

如果我使用第二种方法:

QPalette p = palette();
p.setColor(QPalette::WindowText, Qt::white);
setPalette(p);

复选框文本确实变成了白色,而复选标记本身仍然是黑色的,看起来它可以工作。 但是如果我将焦点移到 QCheckBox 上,文本会再次变黑,并且将永远保持黑色。

我也试过了:

QPalette p = palette();
p.setColor(QPalette::Active, QPalette::WindowText, Qt::white);
p.setColor(QPalette::Inactive, QPalette::WindowText, Qt::white);
setPalette(p);

请注意,我只在 mac 上遇到这种奇怪的行为;如果我在 Linux 中尝试相同的代码(使用不同的颜色,如红色),那么一切都会像我想要的那样。

关于如何改变 QCheckBox 文本颜色的任何想法,并且只有文本?

【问题讨论】:

  • 您可以尝试指定widget的哪一部分必须被新样式表修改。例如,如果您的复选框名称是 MythCheckBox_0,您可以调用 MythCheckBox_0.setStyleSheet("#MythCheckBox_0{color : white;}");或类似的东西。
  • 像使用样式表一样尝试,但不要重新定义 QCheckBox::indicator setStyleSheet("QCheckBox { color : white; });的 css
  • 您有 QDesigner 吗?如果我对调色板颜色有疑问,我会用它来简单地玩弄颜色,看看是否能解决我的问题
  • 我不使用QDesigner,都是编码的。 Rud Limaverde:当我这样做(重新定义整个 QCheckBox 的颜色)时,复选框显示为白色(例如,你再也看不到它了)...

标签: c++ qt


【解决方案1】:

对于某些小部件,您必须禁用原生外观(外观)。例如 QPushButton (http://doc.qt.io/qt-4.8/stylesheet-reference.html)。因此,对于复选框,您可以尝试设置边框。所以复选框的样式看起来像:

QCheckBox {
   border: none;
   color: white;
}

为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多