c++ - 将事件传播到 QGraphicsView 和 QGraphicsScene

标签 c++ qt events

我有一个带有 QGraphicsView 和 QGraphicsScene 的 Qt 应用程序。我将它们都分类为子类,并希望在两者中处理鼠标事件。我可以分别为两个类执行此操作,使用

     virtual void mousePressEvent(QMouseEvent* event);

但是当我处理 GraphicsView 中的事件时,我不再在 GraphicsScene 中接收到它们。我该如何解决这个问题,即将事件从 grapchicsview 传递到 graphicsscene?

最佳答案

只需将 mousePressEvent 转发给您的 GraphicsView 的父级,这将调用场景的 mousePressEvent :

void MyGraphicsView::mousePressEvent(QMouseEvent * e)
{
    // forward to scene (via default view behaviour)
    QGraphicsView::mousePressEvent(e) ;
    // ...
}

顺便说一句,QGraphicsScene::mousePressEvent 有不同类型(类)的事件:QGraphicsSceneMouseEvent

关于c++ - 将事件传播到 QGraphicsView 和 QGraphicsScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750884/

相关文章:

c++ - 映射/迭代器增量错误

c++ - 在 Ubuntu 中使用 C/C++ 进行线路输入插孔感知

c++ - Visual Studio 2013 无法正确处理 Doxygen 多行注释

c++ - 无法将 QMetaMethod 与 lambda 连接起来

linux - 如何为 Linux 制作 Qt 应用程序的二进制分发

c++ - 加载时移除 Qt Webkit 加载光标

events - Opencart addOrderHistory 事件不起作用

c# - 设置用户控件的默认事件

c++ - Qt 不会使用 exiv2.dll 编译项目

c++ - bool 函数问题 - 总是返回 true?