信号の1つに複数のスロットが接続されたQObjectがあります。信号が放射されたときにこれらのスロットのそれぞれが呼び出される順序はありますか? QtをV4.5と以前にQObjectで呼び出されるスロットの順序
答えて
:いいえ、順序はthe documentation hereに見られるように定義されていない:
いくつかのスロットは、1つの信号に接続されている場合、スロットは、次々に実行され、信号が発せられたときに、任意の順序で送信する。
編集:バージョン4.6以降は、これはもう真実ではありません。これで、スロットは接続された順に実行されます。 the current documentationの関連段落:
いくつかのスロットは、一つの信号に接続されている場合、信号が
に放出される場合、スロットは、それらが接続されているために、次々に実行されますこれまでの注文は未定義ですが、すべてのQtバージョンでconnect()
の注文がありましたが、Qt::QueuedConnection
が使用されている場合を除き、emit
が返ってきたときにスロットがすべて実行されたことが保証されていません。しかし、依頼に依拠することはやはり推奨されていません。
Qtのドキュメントによれば、いくつかのスロットは、1つの 信号に接続されている場合
、スロットは信号 があるときに、接続されている ために、次々 を実行します放出される。それは信号/スロット接続の精神の両方を破り、あなたがしなければ望ましくない行動のための広いオープンあなたを離れるとスロットが実行されますどのような順序に依存
間違いありません。 Qtのバージョンによって異なります。 –
は、悪い、悪い考えです任意の種類のプログラムによる信号接続&スロット。
- 1. PHP ::: 2 AJAX呼び出し::: 2レスポンス:::順序順序で
- 2. Silverlight。トリガーの呼び出し順序
- 3. デストラクタの呼び出し順序とポイント
- 4. グローバルなコンストラクタはどのような順序で呼び出されますか
- 5. メソッドはランダムな順序で呼び出す(C#)
- 6. 値を返す同期された "呼び出し順序認識"メソッド
- 7. なぜこのスロットは2回呼び出されるのですか?
- 8. GWT非同期呼び出しの実行順序の問題
- 9. シグナル/スロット対ダイレクト関数呼び出し
- 10. 連鎖呼び出しコールの順序は、
- 11. 基本呼び出し順序規則をオーバーライドしますか?
- 12. HttpWebrequest呼び出し順序または未処理例外
- 13. 呼び出される順序を変更するにはどうすればよいですか?
- 14. SharePoint WebパーツのCreateChildControls()およびApplyChanges()メソッドの呼び出しの順序
- 15. メソッド呼び出しの順
- 16. @PostConstructメソッドが呼び出される順序を保証することはできますか?
- 17. この関数呼び出しの操作の順序は何ですか?
- 18. クラスでの呼び出しの順序が重要な場合のベストプラクティス
- 19. サブクラスQCompleter、サブクラスの仮想スロットが呼び出されていない
- 20. スロットがQSplashScreenのために呼び出されていません
- 21. 親クラスと子クラスの静的コンストラクタはどのような順序で呼び出されますか?
- 22. 特定の順序で呼び出さなければならないメソッドの命名規則
- 23. 信号が送信されるたびにスロットが複数回呼び出されています
- 24. asp.net mvc 4 - _ViewStart.cshtmlを呼び出す人とステップの順序は何ですか?
- 25. カーネルモジュールのInit関数とExit関数が間違った順序で呼び出されています
- 26. セットの結果がPythonで出力される順序
- 27. 派生クラスと基本クラスの間のコンストラクタの呼び出し順序
- 28. 指定された順序でメッセージ出力を累積する
- 29. Flash as3 webserviceコールが呼び出されず、IE7で呼び出される
- 30. UIGestureRecognizer検出順序
@Hossein QTバージョン4.6までの私の答えは正しいです。質問の日付(と私の答え)を見ると、質問が出されたときに正解であったことがわかります。ヤロスラフの答えは1年後に掲載されたことに注意してください。 – sepp2k
申し訳ありません、私はあなたの投稿を過小評価するつもりはありませんでした。この質問は私がやったGoogle検索の最初の結果として現れたので、読者の混乱を招くことはもうありませんでした。 – Hossein
異なるスレッドでこれを実行するには、キュー接続を使用する必要があります。ただ言って。 – smsware