2017-05-09 9 views
-2

申し訳ありませんが、私はクラスの混乱といくつかの信号/スロットに詰まっているので、私は特別なことはできません。Qt C++信号スロット - 信号をクリアするために必要ですか?

私のプロジェクトでは、いくつかの信号スロットを使用しています。今私は、スロットを数回走らせる信号を発するルーチンをどれくらい頻繁に始めるかによって、印象があります。

最初のラム私のスロットは1回実行されます。 2回目の実行では2回実行されます....私はプログラムを終了すると、私は1回実行することから再開します。

信号を送信した後に何らかの仕上げ/終了/削除が必要ですか?

はどちらかdisconnect()が使用されるまで信号は、接続されたまま、または送信者または受信者が削除されます

答えて

3

Qt::UniqueConnectionフラグを見てください。

+0

ありがとうございます!これだった!私はプライベートスロットon_pusbButton_cklicked()を持っていました。これで私はシグナルスロットを鳴らしました。 2回目のボタンを押したときに、それぞれ2つの接続があった:-) – user3443063

0

Aをありがとうございました。 各信号/スロットのペアは1回だけ接続する必要があり、信号が放射されるたびにスロットが呼び出されます。

1

イベントに応じて信号をスロットに接続しています。イベントが繰り返されると、重複した接続が発生します。ほとんどの場合、これはバグです。通常、クラスコンストラクタで接続を設定するか、新しいオブジェクトが作成されてシステムに追加されたときに接続を設定します。

一意の接続は問題をマスクしますが解決しません。解決策は、connectステートメントを再実行されない場所に移動することです。

関連する問題