23

我在按钮 pushButton 样式表中使用了它

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

当我将鼠标悬停在它上面时,它会改变颜色,就像我期望的那样,但是即使我按下按钮,悬停颜色仍然存在。我尝试更改顺序,但仍然是同样的问题。Qt 中的小新。

4

3 回答 3

45

您可以组合状态,例如:

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

QSS 参考 - 状态

于 2013-10-03T14:41:28.550 回答
4

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);     
}
于 2017-02-10T13:37:17.567 回答
-3

您可以在 QPushButton 中设置图像:

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

 QPushButton#pushButton:hover {
      background-url(Images/image3.png);
 }
于 2015-12-04T09:03:19.320 回答