【发布时间】:2011-11-29 18:53:22
【问题描述】:
我有一个日志接口,允许用户继承Logger 并覆盖log() 虚函数,以便用户可以创建自己的记录器。有一个管理器跟踪所有已注册的日志记录方法(即控制台、系统日志、小部件等)
我创建了一个显示日志的 QListWidget Logger。不幸的是,它归日志管理器所有,因为它是一个 QObject,它也是 MainWindow 的子窗口。这导致两个对象试图在应用程序关闭时将其删除。
QObjects->deleteChildren() 第一次被调用并删除它。然后 Loggin gmanager 再次尝试并 CRASH。
如何防止特定的 QObject 在deleteChildren() 期间被破坏?这是个坏主意吗?
【问题讨论】:
标签: qt qobject virtual-destructor