1

C++ アプリケーションに埋め込まれた Python を実行しています。このプログラムは、Qt GUI と、計算が行われる作業 QThread で構成されています。ユーザーは、ファイルから Python スクリプトを実行するか、Python プロンプトを開始するかを選択できます。どちらも QThread で実行されます。Pythonスクリプトが完了するか、Pythonプロンプトを終了すると、プログラムは終了します。ただし、ユーザーが GUI から終了を要求した場合は処理したいと考えています。

Python スクリプトを実行している場合は、 を呼び出すことでこれを実現できます(埋め込み Python の停止PyErr_SetInterruptを参照)。Python インタープリターが停止し、正常に終了できます。ただし、Python プロンプトを強制的に終了させる良い方法は見つかりませんでした。

stdinPython プロンプトが文字を受け取ることを期待して(with ) に文字を供給しようとしungetcましたが、成功しませんでした。PyOS_InputHookこれは、Python プロンプトの実行中に Qt イベントをキャッチするために使用するオーバーロードから行います。

Pythonプロンプトを適切に強制的に終了させる方法はありますか?

4

1 に答える 1