アプリケーションのイベントループが繰り返されるたびにスロットを呼び出すにはどうすればよいですか?私が知っている唯一の方法は、QTimerを使用することであり、すべてのタイムアウト(ミリ秒ごと)信号でスロットを呼び出すことができます。しかし、私はこのオプションが好きではありません、それは回避策のように見えます。
これをより正確に行う方法の提案はありますか?
アプリケーションのイベントループが繰り返されるたびにスロットを呼び出すにはどうすればよいですか?私が知っている唯一の方法は、QTimerを使用することであり、すべてのタイムアウト(ミリ秒ごと)信号でスロットを呼び出すことができます。しかし、私はこのオプションが好きではありません、それは回避策のように見えます。
これをより正確に行う方法の提案はありますか?
Qt 4.7 QCoreApplication :: exec()ドキュメントから:
アプリケーションにアイドル処理を実行させる(つまり、保留中のイベントがない場合は常に特別な関数を実行する)には、タイムアウトが0のQTimerを使用します。より高度なアイドル処理スキームは、processEvents()を使用して実現できます。
だからあなたのアプローチは規定されているものです。イベントループをより細かく制御するには、QCoreApplication :: processEvents()を参照してください。
QCoreApplication :: instance()オブジェクトでinstallEventFilterメソッドを使用することも確認できます。これにより、アプリケーション内のすべてのウィジェットで処理される前に、すべてのイベントにアクセスできるようになります。