用Pyqt5中,自定义了一个QGraphicsView、QGraphicsScene、QGraphicsItem。在item和scene中都重写了mousepressevent,但是鼠标点击的时候,只能触发scene中的鼠标事件,无法触发item中的鼠标事件。
为了解决这个问题,尝试了事件过滤器(eventfilter),但是item中无法安装事件过滤器,只能安装sceneeventfilter。但是sceneeventfilter不是QGraphicsScene的类函数,故而也无法把鼠标点击事件传递到item。
请熟悉QTQGraphicsView方面的专家解惑,谢谢
1.QGraphicsItem的大小,也就是boundingRect必须设置正确
2.在item的构造函数中添加
this->setAcceptedMouseButtons(Qt::LeftButton);
setFlag(QGraphicsItem::ItemIsSelectable);//必须加上这句,否则item无法获取到鼠标事件