先执行QGraphicsItem鼠标松开事件接着执行QGraphicsView鼠标松开事件 C++
时间: 2023-09-10 11:13:15 浏览: 113
QGraphicsView以鼠标点实现放大缩小、拖拽
在Qt中,当你在QGraphicsView上单击并释放鼠标时,QGraphicsView会接收鼠标事件并触发它自己的鼠标释放事件。但是,如果您希望在QGraphicsItem上单击并释放鼠标时,首先触发QGraphicsItem的鼠标释放事件,然后触发QGraphicsView的鼠标释放事件,则可以通过以下步骤实现:
1. 在您的QGraphicsItem派生类中实现鼠标释放事件。例如:
```
void MyGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
// 处理鼠标释放事件
// ...
// 将事件传递给父类以确保QGraphicsView也接收到事件
QGraphicsItem::mouseReleaseEvent(event);
}
```
2. 在您的QGraphicsView派生类中实现鼠标释放事件。例如:
```
void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event)
{
// 处理鼠标释放事件
// ...
// 将事件传递给父类以确保其他事件处理程序也能够接收到事件
QGraphicsView::mouseReleaseEvent(event);
}
```
这样,当您在QGraphicsItem上单击并释放鼠标时,将首先触发QGraphicsItem的鼠标释放事件,然后触发QGraphicsView的鼠标释放事件。
阅读全文