2012-03-29 11 views
1

私はPythonアプリケーションを開発していると私は、UPnPを使用してポートを開きます。問題は、アプリケーションがプロセスによって強制的に閉じられると、ポートがまだ開かれていることです。だから、私はPyQt(または他の何か)のイベントを探して、プロセスが終了したときにいくつかのアクションを実行します。私はクローズボタンについて話していないことを確認してください。プロセスがPythonでPythonで終了していることをどのように通知できますか?

答えて

2

QApplications aboutToQuit信号は、この目的のために正確に構築されているように見えます。コードにスロットを追加し、この信号に接続するだけです。アプリケーションが終了する前にスロットに通知する必要があります。 PyQtはドキュメントから

アプリケーションは、例えば、メインイベントループを終了しようとしている場合、この信号が発せられますイベントループレベルがゼロに低下したとき。これは、アプリケーション内部からのquit()呼び出し後、またはユーザーがデスクトップセッション全体をシャットダウンするときに発生する可能性があります。

信号は、最後の2分のクリーンアップを実行する必要がある場合に特に便利です。この状態ではユーザーとの対話はできません。

(強調鉱山)

+0

申し訳ありませんが、これは働いていない、私がやったこと:QtCore.QObject.connect(メインウィンドウ、QtCore.SIGNAL( 'aboutToQuit()')、self.exit)。 MainWindowはQMainWindowで、self.exitはテキストを出力する関数です。 :/ – Extaze

+0

@Extaze aboutToQuitは、プログラムがメインウィンドウではなく終了しようとしているときです。 aboutToQuitを使用するには、QApplicationのaboutToQuitシグナルに接続する必要があります。 –

+0

QtCore.QObject.connect(アプリ、QtCore.SIGNAL( 'aboutToQuit()')、ui.exit)まだ動作しません... – Extaze

関連する問題