我想实现下面的功能:当鼠标双击在item上时,item处理事件,scene不做任何处理。
当鼠标双击在scene上时,scene上添加一个item。
下面把我的实现简单写下,因为不能贴代码
scene::mouseDoubleClickedEvent(QGraohicsSceneMouseEvent *e)
{
QGraohicsScene::mouseDoubleClickedEvent(e);
if (!e->isAccepted())
{
// 添加控件 在 e->buttonDownScenePos()
}
}
item::mouseDoubleClickedEvent(QGraohicsSceneMouseEvent *e)
{
// do something...
e->accept()
}
现在的问题是,当以下操作顺序执行时会出错
双击scene创建一个item () // 执行正确
双击item // 执行正确
双击scene // 执行错误,获取到的 e->buttonDownScenePos() 是上一个操作的位置。