目前我遇到一个问题,就是使用setHitTestVisible后,这个窗口如果删除,会出错,我看setHitTestVisible是把对象放置在AbstractWindowContext的QSet<const QObject *> m_hitTestVisibleItems;变量中
在AbstractWindowContext::isInTitleBarDraggableArea中进行遍历
for (auto widget : m_hitTestVisibleItems) {
if (widget && m_delegate->isVisible(widget) && m_delegate->isEnabled(widget) &&
m_delegate->mapGeometryToScene(widget).contains(pos)) {
return false;
}
}
这里如果setHitTestVisible的对象删除了,那么就会出现异常,能否把对象改为QSet<Pointer<QObject>>,这样用户不用管理