私は数週間、よく知られているGISフリーソフトウェア(QGIS)のプラグインをコーディングしています。私はそれに少し問題があります。PyQt4 | QDialogの 'X' - exitボタンを処理する
.......
class DisplayedWindow(object):
def __init__(self):
#JANEK Main dialog
self.window_plugin = QtGui.QDialog()
self.window_plugin.setWindowModality(QtCore.Qt.WindowModal)
self.window_plugin.setGeometry(150, 150, 750, 675)
self.window_plugin.setWindowTitle('the plugin')
self.window_plugin.setWindowFlags(Qt.WindowMinimizeButtonHint|Qt.WindowMaximizeButtonHint)
............. (GUI, functions, etc.).......
def run(self):
dis_win = self.DisplayedWindow()
if dis_win.window_plugin.exec_():
pass
が、私はそれがあるべきように構築されていないことを知っているが、私はbegginerだ:
私のプラグイン方式は、次のようになります。プラグインが本当にうまく機能していて、プログラムの全体構造を変更するためにコーディングするにはあまりにも遠すぎます。
私が探している(これまで見つからなかった)方法は、X-exit赤いボタンを処理する方法です。そのため、ユーザーはウィンドウを閉じる前に尋ねることができます。変更など
私はそれを受け取るためにどのように誰もが知っていself.X_close_button.clicked.connect(lambda: closing_stuff())
ようなものが必要?または、誰かがウィンドウを閉じた後に何が起こるかを制御するためのダイアログ(self.window_plugin)で他の方法を使う?
素晴らしい一日を!
おかげで多くのことを、私はまだ問題を抱えています。メインウィンドウはオブジェクトであり、クラスではありません。どうすればこのcloseEvent()メタンを「置き換える」ことができますか? self.window_plugin.closeEvent()= closeEvent() のようなものを試しましたが、エラーが発生します – Janek
私の答えにもう少し情報を追加しました。 – Crispin
'QDialog'が' QMainWindow'のサブクラスである場合はどうなりますか? 'QMainWindow'ではなく' QDialog'の 'closeEvent'メソッドをオーバーライドしたいとします。 – Blinxen