我正在使用标准的QGraphicsView和QGraphicsScene,但我将QGraphicsPixmapItem子类化为我自己的ImagePixmapItem,以便能够在ImagePixmapItem上使用鼠标事件。
我需要做些什么才能捕获这些事件?我已经覆盖了几个这样的函数:
void ImagePixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event){
qDebug("hello");
}
void ImagePixmapItem::wheelEvent ( QGraphicsSceneWheelEvent * event ){
qDebug("Print this line if catch a wheelEvent");//this is never printing
}
但是,这些qDebug语句都没有打印到控制台。我是否需要更改有关场景或图形视图的任何其他内容?在ImagePixmapItem的构造函数中,我确实添加了一些东西:
setAcceptHoverEvents(true);
setFlag(QGraphicsItem::ItemIsSelectable,true);
但它没有任何好处。
答案 0 :(得分:0)
您可以使用事件过滤器。
http://cartan.cas.suffolk.edu/qtdocs/eventsandfilters.html
我还要补充一点,对于原始示例,请务必在相关小部件上启用鼠标跟踪。