Используя наведении и нажатии стиль Qt

я использовал это в моей кнопочной таблице стилей

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

когда я наведу на него мышь, он меняет цвет, как я и ожидал, но цвет наведения остается даже при нажатии кнопки. Я попытался изменить порядок, но это все та же проблема . мало нового в Qt.

3 ответов


вы можете комбинировать состояния, например:

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

QSS reference-состояния


Css и Qt CSS зависят от порядка объявлений. Более поздние объявления с той же специфичностью будут перезаписывать предыдущие объявления. Итак, чтобы иметь pressed состояние имеет приоритет, просто переместите его ниже hover государство.

QPushButton#pushButton {
    background-color: yellow;
}

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

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

вы можете установить изображение в QPushButton:

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

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