how to change QCheckBox text label color in Qt?

2019-01-19 21:10发布

I'm unable to change the color of Qcheckbox in QT, can somebody help me with code to change color of check box text label. I have tried Qpalette.. And im using QT4.7.4 version..

4条回答
聊天终结者
2楼-- · 2019-01-19 21:23

I ran into this problem using various versions of Qt5 (5.2, 5.4). To do it with style sheets I had to use the Pseudo-States properties: http://doc.qt.io/qt-4.8/stylesheet-reference.html#list-of-pseudo-states

Example:

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

Setting both states changed the colors for me. It seems there are some oddities like this in the stylesheet and palette system so keep your eyes out for them and try a few different things (i.e. selectors, pseudo-states, etc.)

查看更多
虎瘦雄心在
3楼-- · 2019-01-19 21:25

Looks like for some widgets you have to force using non-system "widget-engine". For checkbox it can be done by setting borders to none. So checkbox's style looks like:

QCheckBox {
   border: none;
   color: white;
}

Similar behavior is required by other widgets. Some style-properties do not disable native look. For example QPushButton (http://doc.qt.io/qt-4.8/stylesheet-reference.html)

查看更多
姐就是有狂的资本
4楼-- · 2019-01-19 21:28

You could use stylesheets:

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

For more details check the style sheets in Qt Reference and the stylesheets documentation

查看更多
Luminary・发光体
5楼-- · 2019-01-19 21:36

This works for me:

QPalette p = myCheckBox->palette();
p.setColor(QPalette::Active, QPalette::WindowText, green);
myCheckBox->setPalette(p);
查看更多
登录 后发表回答