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

7

我无法改变QTQcheckbox的颜色,有人能帮我提供改变复选框文本标签颜色的代码吗?我尝试过使用Qpalette,并且我正在使用QT4.7.4版本。

4个回答

9

1
样式表也不起作用了...有没有其他的方法? - sai
1
你的意思是 setStyleSheet("Sheet" 上的大写 S)吗? - Claudiu
1
这些链接已经失效。 - ph_0

7
这对我有用:

这对我有帮助:

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

2
我遇到了在使用不同版本的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; }");

设置两个状态都改变了我的颜色。看起来样式表和调色板系统中有一些奇怪的地方,因此请注意它们,并尝试一些不同的方法(即选择器、伪状态等)。


1

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

QCheckBox {
   border: none;
   color: white;
}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接