2011-09-10 8 views
1

私はマウスのプレスとリリースのイベントを使用したボタンクラスを持っています。私が別の子ウィンドウを開くべきボタンを押してその子になるまでしたいとします。 ウィンドウが開かれているときにボタンを押してください。どうすればいいですか?qt mousepresseventを明示的に呼び出す方法は?

答えて

2

非常に特殊なニーズを持っていない限り、マウスの押した/離しイベントを使用してボタンの操作を検出してはいけません。また、キーボード操作やショートカットについては気にしないでください。信号はclicked()です。

クリックした後にボタンが押し下げられるようにするには、setCheckable(true)を呼び出すときにQPushButtonをボタンモードに切り替える必要があります。

いつものようにそれを押すとclicked()シグナルが出ますが、もう一度クリックするか、setChecked(false);と呼ぶまでは押された状態のままです。

このように、ポップアップウィンドウを閉じると、トグルボタンのチェックを外すだけです。 (または、そのボタンを2回クリックするとチェックが外され、ポップアップも解除されます)

注:setChecked(bool)を呼び出すと、clicked()信号がトリガーされません。しかし、それが必要な場合はtoggled(bool)がトリガーされます。

+0

実際、私は各マウスのイメージを再描画しています。プレス、リリースされたケースです。あなたのコンセプトは多少大丈夫ですが、この場合、ホバリングケースをどう扱うのですか?マウスの画家が私のウィジェットに入ったのをどうやって知っているのですか? – user896036

関連する問題