web-dev-qa-db-ja.com

HoverおよびPressedスタイルシートQtの使用

これをボタン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の新機能.

15
harveyslash

たとえば、次のように状態を組み合わせることができます。

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

QSSリファレンス-状態

32
Dmitry Sazonov

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