Первый раз работаю с Qt, ранее писал только консольные приложения. Возникла небольшая проблема, при закрытии формы - выскакивает такое окно: Code: Process finished with exit code -1073741819 (0xC0000005) Хотелось бы услышать от знающих людей, по какой причине такое возможно. Смог локализовать участок кода, по вине которого происходит подобное, но не понял, почему Code: progress_bar_box = QtGui.QGroupBox() grid_progress_bar = QtGui.QGridLayout() self.progress_bar = QtGui.QProgressBar() self.progress_bar.hide() self.progress_bar_label = QtGui.QLabel(u'Получение списка CMS: ') self.progress_bar_label.hide() grid_progress_bar.addWidget(self.progress_bar_label, 0, 0) grid_progress_bar.addWidget(self.progress_bar, 0, 1) progress_bar_box.setLayout(grid_progressBar)
Мало подробностей. Версию системы, интерпретатора, полный листинг кода, на котором происходит краш в студию.
Скорей всего происходит удаления в куче объекта который уже был удален или был создан в стеке. Что бы следовать объектных иерархий QT, экземпляры наследующие от QObject должны создаваться в куче а не в стеке.
Спасибо за ответы. Методом тыка установил, что проблема заключалась в этой строке: Code: self.progress_bar_label = QtGui.QLabel(u'Получение списка CMS: ') Если же переменная не в self, то ошибки нет.
Я не особо разбираюсь в Python-e и PyQT, но если он транслирует потом код в объекты С++, то вам нужно установить для label parent-а: class PySide.QtGui.QLabel(text[, parent=None[, f=0]]) т.е. подставить self. Вот еще по теме - >> Тыц <<.
Всем спасибо за ответы. Собственно, опытным путем решил проблему. В деструкторе: Code: self.progressBar_label.deleteLater() del self.progressBar_label #progressBar_label - QtGui.QLabel Тема, наверное, исчерпана.