как открыть диалоговое окно при закрытии программы?
Как при закрытии программы спросить, закрыть ли программу или нет?
пример кода:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Main(object):
def __init__(self):
super(Main, self).__init__()
self.setFixedSize(423, 293)
self.lineEdit1 = QtWidgets.QLineEdit("", self)
self.lineEdit1.resize(321, 51)
self.lineEdit1.move(50, 80)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Main()
w.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
void QWidget::closeEvent(QCloseEvent *event)
Этот обработчик события вызывается с данным событием, когда Qt получает запрос на закрытие окна для виджета верхнего уровня из оконной системы.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Main(QtWidgets.QWidget): #(object):
def __init__(self):
super(Main, self).__init__()
self.setFixedSize(423, 293)
self.lineEdit1 = QtWidgets.QLineEdit("", self)
self.lineEdit1.resize(321, 51)
self.lineEdit1.move(50, 80)
def closeEvent(self, event):
reply = QtWidgets.QMessageBox.question(
self,
"Exit",
"Are you sure to quit?",
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
QtWidgets.QMessageBox.No
)
if reply == QtWidgets.QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Main()
w.show()
sys.exit(app.exec_())
