Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt style sheets bugs?

I have a many bugs at simple QSS(Qt style sheets). Is it bugs of Qt?

Example:

enter image description here

Style sheets:

#check1 {
  color: red                  //didn't work here
}

#check2 {
  color: red;                 //but work here
  background-color: black
}

#label1 {
  color: blue;
  text-decoration: underline  //work fine here
} 

#label2:hover {
  color: blue; 
  text-decoration: underline  //but didn't work here
}

Sources:

#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    app.setStyleSheet(" #check1 {color: red} \
                        #check2 {color: red; background-color: black}  \
                        #label1 {color: blue; text-decoration: underline}  \
                        #label2:hover {color: blue; text-decoration: underline}");
    QWidget w; w.setFixedSize(120,130);

    QCheckBox check1("checkbox1",&w);
    check1.setObjectName("check1");
    check1.move(10,0);

    QCheckBox check2("checkbox1",&w);
    check2.setObjectName("check2");
    check2.move(10,30);

    QLabel label1("label1", &w);
    label1.setObjectName("label1");
    label1.move(10,60);

    QLabel label2("label2", &w);
    label2.setObjectName("label2");
    label2.move(10,90);
    w.show();

    return app.exec();
}

qt 4.7.3-3; arch linux; gnome 3 fallback mode

like image 366
TheHorse Avatar asked Aug 23 '11 19:08

TheHorse


1 Answers

For the first checkbox, the problem is somewhere in the Gtk+ style: enter image description here

QLabel, QPushButton or QCheckBox don't support font changes (including text-decoration) in the :hover pseudo-state css selector. The simplest widget that does seems to be QToolButton (which could be used to replace the QLabels if you really need that).
Palette changes (foreground and background colors and styles) for that state are supported by all the widgets.

like image 71
alexisdm Avatar answered Oct 14 '22 20:10

alexisdm