2012-03-21 4 views
0

私の問題は、次のされ使用します私はそれをしなければならない。QTimer SINGLESHOTは、アクチベーターを

+1

あなたは単にあなたが呼んでいる 'repair()'メソッドでそれを行うべきではありませんか? – Gui13

+0

スロット '修理'は 'senderButton'か' this'(本当に 'Reflex'ですか)にありますか? – alexisdm

+0

私はもっと良く説明していたはずです。その修復方法ではなく、ちょうどその名前がその手続きを選んでいます。修理はこれです。 基本的には、1秒待ってからsenderButtonを変更する必要があります。 – FaNaT

答えて

1

可能性:

1)(このオプションは、よりオブジェクト指向であり、はるかに健全な維持するために) サブクラスQButtonこのようなものに見える信号ました:

無効delayedClick(のQPushButton *)を、

ここで、void QPushButton :: mousePressEvent(QMouseEvent * e)[virtual protected]をオーバーライドし、タイムアウト時にdelayedCLick信号を送出するタイマーを開始させます。

最後に、このボタンを気にするボタンに接続すると、完了です。

2)(あなたが持っているものを使用して) これまでに示したことを使用して、クリックしたボタンをメンバ変数(Reflex)として保存し、反応を参照してタスクを実行できます。

QTドキュメントの注意: 警告:この関数[sender()]は、オブジェクト指向のモジュール性に違反します。ただし、多くの信号が1つのスロットに接続されている場合は、送信者にアクセスすると便利です。

IE:可能であればAVOID。サブクラス化はかなり簡単です。

関連する問題