众所周知delete是C++和QT共有的一个操作符即时使用实时就析构删除了,而QT里的deletelater的原理是:QObject::deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时。
应用例子:父窗体的子窗体在focusoutevent时deletelater();然后在主窗体绑定信号子窗体的destroy()信号和父窗体的槽函数
然后在槽函数中象父窗体调用父窗体的接口函数向父窗体发送子窗体的文本text();
本文解析了C++中QObject::deleteLater()的功能与原理。该函数不立即销毁对象,而是向消息循环发送事件,待下次循环时才销毁。此方法允许开发者在销毁前执行额外操作,但可能导致内存释放延迟。
7528

被折叠的 条评论
为什么被折叠?



