幾周以來,我一直在爲一些衆所周知的GIS免費軟件(QGIS)編寫一個插件。我遇到了一些小問題。PyQt4 |處理'X' - 在QDialog中退出按鈕
我的插件機制是這樣的:
.......
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
我知道這是不是建立理所應當的,但我是初學者。沒問題的是,這個插件工作的非常好,而且我在編寫它的過程中已經走得太遠,無法改變程序的整個結構。
我正在尋找的(到目前爲止找不到的)是一種處理X-exit紅色按鈕的方法,因此如果用戶不想保存,可能會在關閉窗口之前詢問用戶變化等
我需要這樣的東西self.X_close_button.clicked.connect(lambda: closing_stuff())
有誰知道如何接受呢?或者在這樣的對話框中以任何其他方式來控制某人關閉窗口(self.window_plugin)後會發生什麼?
祝您有個美好的一天!
非常感謝,但我仍然有一個問題。主窗口是一個對象,而不是一個類。我怎樣才能「替換」這個closeEvent()方法呢? 我試過類似的, self.window_plugin.closeEvent()= closeEvent() 但它會導致錯誤 – Janek
我在答案中添加了更多信息。 – Crispin
如果'QDialog'是'QMainWindow'的子類呢?我如何說我想重寫'QDialog'的'closeEvent'方法而不是'QMainWindow'。 – Blinxen