При установке атрибута wa DeleteOnClose в главном окне Qt программа аварийно завершает работу при удалении указателя пользовательского интерфейса

Я поставил WA_DeleteOnClose атрибут виджета в главном окне.

setAttribute(Qt::WA_DeleteOnClose);

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

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

1 ответов


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

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