2016-07-13 14 views
1

QPushbuttonの状態遷移に関する質問があります。QPushbuttonの状態遷移:「押された」状態がありません

QPushButtonからクラスMyQPushButtonを派生しました。それについては 私はスタイルシートを通じて、いくつかの視覚的なプロパティを設定します。

Qtのコード: スイッチビュー

MyQPushButton 
{ 
background-color: transparent; 
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_a.png); 
} 

MyQPushButton:pressed { 
background-color: transparent; 
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_b.png); 
} 

MyQPushButton:disabled { 
background-color: transparent; 
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_d.png); 
} 

MyQPushButton:checked { 
background-color: transparent; 
border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_c.png); 
} 

クリップボードにコピーするには、チェック可能MyQPushButtonインスタンスとの対話プレーンテキストモード

にスイッチビューを、イメージ "MyQPushButton_b"(押された状態)は、チェックされていない状態からチェックされていない状態への遷移中に、チェックされていない状態でクリックするだけで、しばらく表示されます。 ドキュメントで確認した状態(逆の遷移)でそれをクリックしても同じ画像が表示されることがあります

"ユーザーがチェックするためにトグルボタンをクリックすると、ユーザがそれを再びクリックすると(チェックを外す)、ボタンは最初に押された状態に移動し、次にチェックされていない状態に移動します。

私の解釈は間違っていますか? 逆に、チェックされていないチェックされたトランジション中に、押された状態の対応するイメージが表示されるようにするにはどうすればよいですか?

ありがとうございます!

IR

答えて

1

downに変更pressedThe down propertyは、押された状態とチェックされた状態の両方をカバーしますので、スタイルシートがdownの外観の変更を完全に上書きしていることを確認してください(すでにありますが、N.Bです)。

ドキュメントが参照する「押された」状態は、ボタンが「ダウン」しているが「チェック」されていないことを示す非エンティティです。これは以下と等価である:コードに

if (button.isDown() && !button.isChecked()) 
    ... 

ダイビングこの試験はQPushButton::initStyleOption()で内部的に使用されることを示します。

+0

こんにちは、あなたのヒントありがとう!スタイルシートの「押された」を単に「下に」置き換えるだけで(私があなたをよく解釈した場合)、私は自分の問題を直ちに解決することはできません。しかし、私はあなたのヒントを回避することができると確信しています...例えば、チェック可能なMyQPushButtonインスタンスにイベントフィルタをインストールし、あなたが提案したisDown()プロパティをチェックすることによって!ニュースが届いています... – ilariari

+0

ボタンがチェック可能なので、あなたのCSSで* "checked"の後に "down"状態を入れてみてください。 @ilariari –

+0

また、新しいCSSアイテムを導入することもありません:MyQPushButton:checked [down = "true"] {... <画像が押された状態>} – ilariari

関連する問題