2013-10-03 25 views
9

ho usato nel mio tasto a pulsante foglio di stileUtilizzando Hover e foglio di stile pressato Qt

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

quando mi passa il mouse il mouse su di esso, cambia colore, come mi aspetto che, Ma il colore hover rimane anche quando ho premi il bottone. Ho provato a cambiare l'ordine, ma è ancora lo stesso problema. poco nuovo in Qt.

+1

'pusButton'. Eeew! –

risposta

17

È possibile combinare gli stati, ad esempio:

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

QSS reference - states

+0

okay! funziona bene. grazie mille Ho usato questo :: QPushButton # Pushbutton { background-color: red} QPushButton # Pushbutton: hover:! Premuto { background-color: green } QPushButton # Pushbutton: hover { background-color: yellow } –

+0

È una risposta alla tua domanda, ma in una riga. Lo aggiusterò, se non capisci;). Idea principale, che puoi combinare gli stati come desideri. Propongo di leggere la documentazione qt, ci sono molti esempi utili - http://doc.qt.digia.com/4.7/stylesheet-reference.html –

0

È possibile impostare l'immagine in 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

Perché hai pensato che la domanda riguardasse le immagini di sfondo? –

1

Css, e Qt CSS, dipende dall'ordine di dichiarazioni. Le dichiarazioni successive con la stessa specificità sovrascriveranno le dichiarazioni precedenti. Quindi, per avere lo stato pressed avere la precedenza, è sufficiente spostarlo sotto lo stato hover.

QPushButton#pushButton { 
    background-color: yellow; 
} 

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

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