在PyQt5中可以使用closeEvent
方法來處理窗口關閉事件。該方法會在窗口關閉時被調用,我們可以重寫該方法來實現自定義的關閉行為。
下面是一個簡單的示例代碼,演示了如何在關閉窗口時彈出一個確認對話框:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
class MyWidget(QWidget):
def __init__(self):
super().__init__()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
在上面的代碼中,我們定義了一個繼承自QWidget
的自定義窗口類MyWidget
,并重寫了closeEvent
方法。在該方法中,我們彈出了一個確認對話框來詢問用戶是否確定要關閉窗口。根據用戶的選擇,我們可以調用event.accept()
來接受關閉事件,或者調用event.ignore()
來忽略關閉事件。
通過重寫closeEvent
方法,我們可以實現各種自定義的關閉行為,例如顯示警告信息、保存數據等。