Qt开发之路——delete和deletelater的区别

转自:https://blog.csdn.net/c54514331/article/details/80954352

众所周知delete是C++和QT共有的一个操作符即时使用实时就析构删除了,而QT里的deletelater的原理是:QObject::deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时。

应用例子:父窗体的子窗体在focusoutevent时deletelater();然后在主窗体绑定信号子窗体的destroy()信号和父窗体的槽函数

然后在槽函数中象父窗体调用父窗体的接口函数向父窗体发送子窗体的文本text();

你可能感兴趣的:(#,Qt,Basic,qt,delete,deletelater)