1、重寫closeEvent()
def closeEvent(self, event): reply = QtWidgets.QMessageBox.question(self, 'Message', '你確認要退出么?', QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: sys.exit(0) else: event.ignore()
2、調用子窗口時使用exec_()代替show()
self.my_dialog = MyDialog()
self.my_dialog.exec_()
注意:Dialog 可執行exec_() 方法, Widget 沒有exec_()方法
詳情見:https://www.cnblogs.com/dcb3688/p/4586373.html(講述非模式對話框及模式對話框)
