私はPyQtのGUIを持っていますが、これには複数の方法があります。そのような2つの方法は、窓からXが外れた場合、または特定のタスクを完了した場合です。 QMainWindow
から拡張されたクラスは、closeEvent
メソッドを実装しています。PyQtでcloseEventのトリガーを検出する
Xをウィンドウ外に使用している場合は、終了したいと思っているかどうかを確認したい場合は、「はい」と答えてクリーンアップして閉じます。
特定のタスクを完了した場合は、クリーンアップをやり直すだけです。
は今のところ私のcloseEvent
は次のようになります。この特定のセットアップで
def closeEvent(self, event):
# Ask the user if they actually want to quit using custom message box
msg = MessageBox(self, 'Are you sure you want to quit?', title = 'Quit', buttons = QMessageBox.Yes|QMessageBox.No)
if msg.reply == QMessageBox.Yes:
#
# Do some cleanup here
#
super().close()
else:
event.ignore()
を、彼らは彼らが窓の外にXする際に必要となる、クローズすることを確認している場合、それは常に求められます。彼らが特定のタスクを完了したら、私は彼らが終了したいと思うだけで、この質問をしなくても、クリーンアップとクローズプロセスにジャンプしたいと思っています。
私の考えは、いくつかの密接なケースでは、必要なタスクを行う別の関数にそれらを導いてから、closeメソッドを呼び出します。しかし、ここでの問題は、closeメソッドを呼び出す前に、Xoutプロセスを別のメソッドに向ける方法がわかりません。今のように、Xoutクローズメソッドの一部として必要であるため、終了したいと確信しているかどうかを常に確認します。
私は何をしようとしていますか?
あなたの質問はより正確です。 – eyllanesc