QGraphicsItem执行鼠标事件让QGraphicsView继续执行鼠标事件 C++
时间: 2023-09-11 22:08:11 浏览: 167
QGraphicsview_test.7z
在Qt中,当鼠标点击一个QGraphicsItem时,该项会处理该事件并将其标记为已处理。如果您希望QGraphicsView继续处理该事件,则需要在QGraphicsItem中重写mousePressEvent()函数并在其中调用父类的函数以将事件传递给QGraphicsView。
以下是一个示例:
```cpp
class MyGraphicsItem : public QGraphicsItem
{
public:
MyGraphicsItem(QGraphicsItem *parent = nullptr) : QGraphicsItem(parent) {}
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
{
// call the parent class' mousePressEvent to pass the event to QGraphicsView
QGraphicsItem::mousePressEvent(event);
// additional code for handling the event in the QGraphicsItem
// ...
}
};
```
在该示例中,我们首先调用了父类的mousePressEvent()函数以将事件传递给QGraphicsView,然后可以在函数中添加其他代码以处理事件。
阅读全文