how to change QCheckBox text label color in Qt?

17,646

Solution 1

You could use stylesheets.

e.g:

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

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

Solution 2

This works for me:

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

Solution 3

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.)

Solution 4

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)

Share:
17,646
sai
Author by

sai

Updated on July 30, 2022

Comments

  • sai
    sai almost 2 years

    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..