2011-02-04 19 views
1

Qt(私はQt 4.7.1を使用しています)ウィジェットは、押されている間にシグナルを出すだけでなく、ユーザーがマウスを離したときに停止しますか?標準的な間隔でマウスイベントのようなもの? またはこれをqtimerで実装する必要がありますか? ありがとうqtボタンで複数の信号を送信するには

答えて

4

QAbstractButton::autoRepeatとautoRepeatIntervalを確認してください。それはあなたが必要とするものであり、すべてのボタンで利用可能でなければなりません。

+0

+1 OPが欲しかった機能を発見しました。 – Palmik

0

ユーザーがマウスを放すまでイベントを発生させるものを実装する必要があります。

オブザーバーが好きなようにカスタムイベントを発生させるボタンイベントに接続されたハンドラクラスを作成することをお勧めします。

0

私が知る限り、そのようなボタンウィジェットはありません。 QPushButtonautoRepeatは、あなたが望むだけの効果を発揮します。しかし、QPushButton::pressed()QPushButton::released()信号があなたの必要性に十分ではないでしょうか?

とにかく、あなたは(それがすでに存在するため、冗長)を実装するのは非常に簡単だろう記述しているもの、あなたがしたい信号にQTimer::timeout()信号を接続してから、ちょうどpressed()信号にタイマーを開始し、released()信号にそれを止めます:)

編集:コメントで指摘されているように、設定プロパティautoRepeatQAbstractButtonからtrueに継承されています。

autoRepeatDelayautoRepeatIntervalを調整することで、初期遅延と間隔をカスタマイズできます。

+0

これは私が解決策として念頭に置いたものです。この機能を持つqwidgetが存在しないことを確認してくれてありがとう – theosem

+1

しかし、あります! Frank Osterfeldの答えを参照してください – TonyK

+0

ああ、それについて知りませんでした、ごめんなさい:) – Palmik

関連する問題