2

PySide (Qt Python バインディング) で記述された Qt アプリケーションがあります。このアプリケーションには、GUI スレッドと、重労働 (かなり長いタスク) の実行を担当する多くの異なる QThreads があります。このような長いタスクがスタックすることがあるため (通常はサーバーの応答を待っているため)、アプリケーションがフリーズすることがあります。

QCoreApplication.processEvents()したがって、GUIイベントキューがクリア(処理)されるように、1秒ごとに「手動で」呼び出すのが安全かどうか疑問に思っていましたか?それはまったく良い考えですか?

4

2 に答える 2

1

いつでも安全に QCoreApplication.processEvents() を呼び出すことができます。ドキュメントには、ユースケースが明示的に記載されています。

プログラムが長い操作 (ファイルのコピーなど) を実行しているときに、この関数をときどき呼び出すことができます。

ただし、スレッドがメイン スレッドでイベント ループをブロックする正当な理由はありません。(システムが本当に追いつかない場合を除きます。) とにかく調べる価値はあります。

于 2013-08-20T15:54:05.363 に答える