我有一个日志界面,允许用户对Logger
进行子类化并覆盖log()
虚拟功能,以便用户可以创建自己的记录器。有一位经理跟踪所有注册的日志记录方法(即控制台,系统日志,Widget等)如何防止在QT中的deleteChildren()过程中删除子项?
我创建了一个显示日志的QListWidget Logger。不幸的是,它由日志记录管理器拥有,因为它是一个QObject,它也是MainWindow的子节点。这会导致两个对象试图在应用程序关闭时将其删除。
第一次围绕QObjects->deleteChildren()
被调用并删除它。然后Loggin gmanager再次尝试和CRASH。
如何防止在deleteChildren()
期间销毁特定的QObject?这是一个坏主意吗?
我在尝试推荐#3,因为我认为这可能是最好的选择。虽然这是我第一次进入QSharedPointer,所以*手指交叉*。 – shadowland