QGraphicsItem鼠标在boundingRect范围内却无法触发鼠标事件
时间: 2024-01-24 19:08:25 浏览: 157
现QGraphicsItem的鼠标事
这种情况通常是因为boundingRect返回的矩形区域不包括实际显示的控件区域,你可以尝试重写QGraphicsItem的shape函数来返回一个更准确的形状,例如:
```cpp
class MyItem : public QGraphicsItem {
public:
QRectF boundingRect() const {
return QRectF(0, 0, 100, 100);
}
QPainterPath shape() const {
QPainterPath path;
path.addRect(QRectF(10, 10, 80, 80));
return path;
}
void mousePressEvent(QGraphicsSceneMouseEvent *event) {
qDebug() << "Mouse pressed!";
}
};
```
在上面的示例中,重写了shape函数来返回一个更准确的形状,这样就可以正确地触发鼠标事件了。
阅读全文