@pypyshka

Как понять причины аварийного завершения программы?

Добрый день.

Имеется программка для работы с БД. При запуске отображается таблица, куда выводятся данные из базы. Если закрыть программу, то с вероятностью, примерно, 20% она вылетит, т. е. Windows покажет сообщение по проблеме:

Имя события проблемы: APPCRASH
Имя приложения: python.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 5676ff9a
Имя модуля с ошибкой: QtGui.pyd
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 55a8cb2e
Код исключения: c0000005
Смещение исключения: 0000000000233440
Версия ОС: 6.3.9600.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: 3733
Дополнительные сведения 2: 373373bfbcbe3a555910936d40bbcd4c
Дополнительные сведения 3: f4cb
Дополнительные сведения 4: f4cbefe822d4eff4175ddc99fca5ba47

В консоли отображается только: Process finished with exit code -1073741819 (0xC0000005).

Для закрытия главного окна программы у меня используется функция CloseEvent:
def load_data():
    db_connect = QtSql.QSqlDatabase.addDatabase("QSQLITE")
    db_connect.setDatabaseName("datebase.db")
    db_connect.open()
    model = QtSql.QSqlQueryModel(parent=main_window)
    model.setQuery("SELECT * FROM data")
    main_window.tableView.setModel(model)
    db_connect.close()


class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("main.ui", self)       
        self.setWindowTitle("Main")
        self.setMinimumSize(500, 350)
        self.show()

    def closeEvent(self, event):
        dialog = QtGui.QMessageBox.question(self,
                                        "Выход из программы", "Вы действительно хотите закрыть программу?",
                                        QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
        if dialog == QtGui.QMessageBox.Yes:
            QtGui.QApplication.exit()
        else:
            event.ignore()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    main_window = MainWindow()
    load_data()
    sys.exit(app.exec_())


Я использую PyCharm. Можно как-то в нем сделать, чтобы ошибки более конкретно описывались, чтобы понять их причину?
  • Вопрос задан
  • 644 просмотра
Решения вопроса 1
@pypyshka Автор вопроса
Собрал проект в ехе с помощью pyinstaller и вылеты прекратились.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы