sai
sai

Reputation: 155

how to change QCheckBox text label color in Qt?

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

Upvotes: 7

Views: 23597

Answers (4)

pnezis
pnezis

Reputation: 12331

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

Upvotes: 9

Mnt DXM
Mnt DXM

Reputation: 168

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)

Upvotes: 1

MrJman006
MrJman006

Reputation: 770

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

Upvotes: 2

Jeremy Friesner
Jeremy Friesner

Reputation: 73294

This works for me:

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

Upvotes: 7

Related Questions