У меня есть приложение, которое наследует форму QtGui.QMainWindow и которое переопределяет CloseEvent для отображения MessageBox.PyQt - отображение MessageBox при нажатии кнопки «Выход»
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(
self,
'Quit',
'Are you sure you want to quit?',
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
QtGui.QMessageBox.Yes)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
Это MessageBox появляется, когда я нажимаю на «X» в окне. Приложение также имеет кнопку «Выход». Я попытался подключить кнопку к переопределению closeEvent, поэтому, когда я нажимаю кнопку, появляется MessageBox. Но когда я подтверждаю, что хочу уйти, я просто вернусь в свое приложение.
def create_components(self):
self.button = QtGui.QPushButton('Quit')
self.button.clicked.connect(self.button_quit)
def button_quit(self):
self.status_bar.showMessage('Leaving Application')
# QtCore.QCoreApplication.instance().quit()
self.closeEvent(QtGui.QCloseEvent())
Метод '' create_components вызывается в инициализации.
'self.button.clicked.connect (self.close)'. – ekhumoro