Удаление QWinWidget - PullRequest
       23

Удаление QWinWidget

0 голосов
/ 12 октября 2009

Я использую миграцию mfc в Qt и показываю диалоги Qt в своем приложении Mfc. Это нормально, чтобы удалить позже QWinWidget в своем обработчике winEvent? Дело в том, что мне нужны все мои открытые диалоги Qt в приложении My Mfc автоматически удаляться при закрытии главного окна MFC. Поскольку WM_DESTROY будет отправлено для всех дочерних окон (и виджетов Qt тоже) Поэтому я добавил следующий код в обработчик winEvent QwinWidget:

QWinWidget::winEvent(MSG * message, long * result)
       {
                 ........
                 if(message->message == WM_DESTROY )
                     deleteLater();
                 return false;
       }

Может кто-нибудь прокомментировать это Спасибо

1 Ответ

0 голосов
/ 12 октября 2009

Строго говоря, о безопасности вызова deleteLater(), обычно безопасно делать внутри функции, работающей внутри этого класса. Объект не будет удален, пока управление не вернется в функции цикла событий. Единственные потенциальные проблемы, которые я вижу, связаны с многопоточным кодом, что, вероятно, не относится к виджету с его обработчиками событий.

...