web-dev-qa-db-fra.com

Utilisation des feuilles de style Hover et Pressed Qt

Je l'ai utilisé dans ma feuille de style bouton poussoir

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

lorsque je passe la souris dessus, il change de couleur, comme je m'y attendais, mais la couleur du survol reste même lorsque j'appuie sur le bouton. J'ai essayé de changer l'ordre, mais c'est toujours le même problème. peu de nouveautés dans Qt.

18
harveyslash

Vous pouvez combiner des états, par exemple:

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

référence QSS - états

32
Dmitry Sazonov

Css et Qt CSS dépendent de l'ordre des déclarations. Les déclarations ultérieures avec la même spécificité remplaceront les déclarations précédentes. Donc, pour que l'état pressed soit prioritaire, il suffit de le déplacer sous l'état hover.

QPushButton#pushButton {
    background-color: yellow;
}

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

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