删除QWinWidget

时间:2009-10-12 08:42:01

标签: qt qt4 qt-mfc-migration

我正在使用mfc进行Qt迁移,我在我的Mfc应用程序中显示Qt对话框。 在winEvent处理程序中删除Lall QWinWidget是否可以? 问题是我想在My Mfc应用程序中打开所有开放的Qt对话框 在主mfc窗口关闭时自动删除。 因为WM_DESTROY将被发送给所有子窗口(以及Qt小部件) 所以我在QwinWidget winEvent处理程序中添加了以下代码:

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

有人可以对此发表评论 感谢

1 个答案:

答案 0 :(得分:0)

严格关于deleteLater()调用的安全性,在该类内部运行的函数内部通常是安全的。在控件返回到事件循环函数之前,不会删除该对象。我能看到的唯一潜在问题涉及多线程代码,对于带有事件处理程序的小部件可能不会这样。