当一个 QObject 正在接受事件队列时,如果中途被销毁掉了,就是出现问题了。
所以 Qt 中建大家不要直接 Delete 掉一个 QObject ,如果一定要这样做,要使用 QObject
的 deleteLater () 函数,它会让所有事件都发送完一切处理好后马上清除这片内存,而且就算
调用多次的 deletelater 也不会有问题。
发送一个删除事件到事件系统:
void QObject::deleteLater()
{
QCoreApplication:: postEvent (this, new QEvent(QEvent:: DeferredDelete ));
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_38241876/article/details/131810596