我想通过另一个对象(a
)处理对象(b
)的事件。我打电话给a->installEventFilter(b)
。如果我删除了对象a
,则说明会自动删除事件过滤器,即对象b
不再接收要过滤a
的事件。但我不知道如果我先删除对象b
会发生什么,而a
保持活动状态。如果我理解正确,那么文档就没有说明这种情况。是否会导致崩溃,因为对象a
会将事件发送到已经死亡的b
?或者这是安全的事情,因为事件过滤是以某种方式自动化的。去掉?或者我是否必须明确调用a->removeEventFilter(b)
,例如在b
的析构函数中?
答案 0 :(得分:2)
我看了一下Qt源代码,这是我在QObject中找到的:
ShowButton
QPointers是智能指针,当指向删除对象时,它们会变为null。所以说 - 你不必明确地调用<ShowButton basePath={"/${collectionable_type}/${collectionable.id}"} />
。 Qt负责管理这个问题。