当QGraphicsScene鼠标松开事件响应完成后自动调用QGraphicsItem鼠标松开事件C++
时间: 2023-07-11 08:04:05 浏览: 95
现QGraphicsItem的鼠标事
QGraphicsScene鼠标松开事件响应完成后,不会自动调用QGraphicsItem的鼠标松开事件。如果需要调用QGraphicsItem的鼠标松开事件,可以在QGraphicsScene的鼠标松开事件中手动调用对应QGraphicsItem的鼠标松开事件。
举个例子,假设你有一个自定义的QGraphicsItem类MyItem,你可以在QGraphicsScene的鼠标松开事件中查找当前鼠标位置下是否有MyItem对象,如果有,就手动调用对应MyItem对象的鼠标松开事件,例如:
```cpp
void MyScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
// 查找当前鼠标位置下是否有MyItem对象
QList<QGraphicsItem*> itemList = items(event->scenePos());
foreach (QGraphicsItem *item, itemList) {
if (item->type() == MyItem::Type) {
// 手动调用MyItem对象的鼠标松开事件
MyItem *myItem = qgraphicsitem_cast<MyItem*>(item);
myItem->mouseReleaseEvent(event);
}
}
QGraphicsScene::mouseReleaseEvent(event);
}
```
这样,在QGraphicsScene的鼠标松开事件中,就可以自动调用对应QGraphicsItem的鼠标松开事件了。
阅读全文