如何在Qt中更改QCheckBox文本标签颜色

how to change QCheckBox text label color in Qt?

本文关键字:QCheckBox 文本标签 颜色 Qt      更新时间:2023-10-16

我无法更改 QTQcheckbox的颜色,有人可以帮助我编写代码来更改复选框文本标签的颜色。我已经试过Qpalette了..我使用的是QT4.7.4版本。

您可以使用样式表。

例如:

checkBox->setStyleSheet("QCheckBox { color: red }");

有关更多详细信息,请查看Qt参考中的样式表和样式表文档

这对

我有用:

QPalette p = myCheckBox->palette();
p.setColor(QPalette::Active, QPalette::WindowText, green);
myCheckBox->setPalette(p);

我在使用各种版本的Qt5(5.2,5.4)时遇到了这个问题。要使用样式表来做到这一点,我必须使用伪状态属性:http://doc.qt.io/qt-4.8/stylesheet-reference.html#list-of-pseudo-states

例:

myCheckbox->setStyleSheet("QCheckBox:unchecked{ color: red; }QCheckBox:checked{ color: red; }");

设置这两种状态都改变了我的颜色。样式表和调色板系统中似乎有一些这样的奇怪之处,所以请留意它们并尝试一些不同的东西(即选择器、伪状态等)。

看起来对于某些小部件,您必须强制使用非系统的"小部件引擎"。对于复选框,可以通过将边框设置为无来完成。因此,复选框的样式如下所示:

QCheckBox {
   border: none;
   color: white;
}

其他小部件也需要类似的行为。某些样式属性不会禁用本机外观。例如 QPushButton (http://doc.qt.io/qt-4.8/stylesheet-reference.html)