Как после падения главного окна PyQt5 с ошибкой вызвать сообщение с текстом об ошибке?
У меня есть приложении на PyQt5, которое, предположим, может упасть после некоторой ошибки.
Как мне в коде из примера ниже добиться такого результата, чтобы после падения главного окна оно закрывалось и вызывалось небольшое диалоговое окно с текстом об ошибке и кнопкой "Ок", после закрытия которого приложение app
завершало работу?
import sys
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QMainWindow, QApplication, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.central_widget = QWidget(self)
self.setCentralWidget(self.central_widget)
self.layout_main_window = QVBoxLayout()
self.central_widget.setLayout(self.layout_main_window)
self.btn_crash_programm = QPushButton('Crash')
self.btn_crash_programm.clicked.connect(self.crash)
self.layout_main_window.addWidget(self.btn_crash_programm)
def crash(self):
x = 2 / 0
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setStyle('Fusion')
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
Я планировал добиться этого, оборачивая эту часть кода в try - except
, но это не работает, блок except
не выполняется, главное окно закрывается, а приложение продолжает работать и грузить систему.
main_window = MainWindow()
main_window.show()
Источник: Stack Overflow на русском