При установке атрибута WA_DeleteOnClose в главном окне Qt программа вылетает при удалении указателя пользовательского интерфейса. - PullRequest
6 голосов
/ 01 июля 2010

Я установил атрибут виджета WA_DeleteOnClose в MainWindow.

setAttribute(Qt::WA_DeleteOnClose);

Однако всякий раз, когда я закрываю это главное окно, в деструкторе появляется segfault, который имеет только delete ui;

В двух словах, создал приложение Qt4 GUI в Creator, добавил setAttribute(Qt::WA_DeleteOnClose); в конструктор, программа теперь вылетает при выходе.

1 Ответ

10 голосов
/ 01 июля 2010

Вы получаете segfault в своем деструкторе в первый раз или во второй раз?Помните, что ваш деструктор главного окна должен запускаться только один раз.То есть он должен запускаться либо из-за размотки стека, или из-за WA_DeleteOnClose, но не обоим.

IIRC, Создатель поместит главное окно в стек main().Поэтому при main() возвращает главное окно уничтожается.

...