使用悬停和按下的样式表Qt

时间:2013-10-03 13:54:59

标签: qt hover stylesheet rollover

我在我的按钮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中的新鲜事。

3 个答案:

答案 0 :(得分:29)

您可以组合状态,例如:

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

QSS reference - states

答案 1 :(得分:2)

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);     
}

答案 2 :(得分:-2)

您可以在QPushButton中设置图像:

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

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