2013-10-03 11 views
9

użyłem w moim przycisk PUSHBUTTON stylówKorzystanie Hover i przycisnął stylów Qt

QPushButton#pushButton { 
    background-color: yellow; 
} 
QPushButton#pushButton:pressed { 
    background-color: rgb(224, 0, 0);  
} 
QPushButton#pushButton:hover { 
    background-color: rgb(224, 255, 0); 
} 

kiedy unoszą moje myszy nad nim, zmienia kolor, jak ja się go spodziewać, ale kolor unosić pozostaje nawet kiedy naciśnij przycisk. Próbowałem zmienić kolejność, ale wciąż jest ten sam problem. trochę nowego w Qt.

+1

"pusButton". Eewew! –

Odpowiedz

17

Można łączyć stanów, na przykład:

QPushButton:hover:!pressed 
{ 
    border: 1px solid red; 
} 

QSS reference - states

+0

w porządku! działa dobrze. dziękuję użyłem tej :: QPushButton # PUSHBUTTON { background-color: red } QPushButton # PUSHBUTTON: hover: wciśnięty { background-color: green } QPushButton # PUSHBUTTON: hover { kolor tła: żółty } –

+0

Jest to odpowiedź na twoje pytanie, ale w jednym wierszu. Dostosuję to, jeśli nie rozumiesz;). Główna idea, że ​​możesz łączyć stany, jak chcesz. Proponuję przeczytać dokumentację qt, jest wiele przydatnych próbek - http://doc.qt.digia.com/4.7/stylesheet-reference.html –

0

Można ustawić obraz w QPushButton:

QPushButton#pushButton { 
    background-url(Images/image1.png); 
} 
QPushButton#pushButton:pressed { 
    background-url(Images/image2.png); 
} 

QPushButton#pushButton:hover { 
     background-url(Images/image3.png); 
} 
+6

Dlaczego myślisz, że pytanie dotyczyło obrazów tła? –

1

CSS i Qt CSS, zależy od kolejności deklaracje. Późniejsze deklaracje o tej samej specyfice zastąpią poprzednie deklaracje. Tak więc, aby stan pressed miał pierwszeństwo, po prostu przenieś go poniżej stanu hover.

QPushButton#pushButton { 
    background-color: yellow; 
} 

QPushButton#pushButton:hover { 
    background-color: rgb(224, 255, 0); 
} 

QPushButton#pushButton:pressed { 
    background-color: rgb(224, 0, 0);  
}