首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止QGraphicsView的某些鼠标事件

阻止QGraphicsView的某些鼠标事件
EN

Stack Overflow用户
提问于 2013-08-03 00:19:21
回答 2查看 1K关注 0票数 0

我在QGrapnhicsView后面有自己的QGraphicsScene子类(我没有覆盖它)。我的场景处理一些鼠标事件(双击和单击)。但同时,我希望我的视图可以通过光标滚动(QtGui.QGraphicsView.ScrollHandDrag)。如果鼠标事件已经导致滚动,我如何阻止视图层上的鼠标事件,而不是冒泡到场景?

EN

回答 2

Stack Overflow用户

发布于 2013-08-03 00:23:08

您需要从QGraphicsView实现mouseMoveEvent函数并接受事件。

代码语言:javascript
复制
protected:
virtual void QGraphicsView::mouseMoveEvent(QMouseEvent * event)
{
    QPoint mouseLocation = event->pos();
    // Do stuff
    event->accept();
}

接受鼠标事件prevents a parent class from handling that event

这将阻止鼠标移动事件被传播。根据您要做的事情,您还可以重新实现mouseDoubleClickEventmousePressEventmouseReleasEventwheelEvent函数。它们的所有函数定义都在QGraphicsView文档中。

票数 0
EN

Stack Overflow用户

发布于 2018-01-31 01:45:23

根据Qt文档,您实际上需要对QGraphicsView进行子类化,并为新的子类重新实现mouseMoveEvent()方法。

参考: http://doc.qt.io/qt-5/qgraphicsview.html#dragMode-prop

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18021742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档