如何安装和处理Qt graphicsview的事件筛选器

如何安装和处理Qt graphicsview的事件筛选器,qt,events,event-handling,qt4,symbian,Qt,Events,Event Handling,Qt4,Symbian,我有一个graphicsview和一个GraphicsCenter,但我不知道如何安装和处理事件过滤器来获取键盘事件。有人能帮我吗 提前感谢。如果您已经创建了自定义的QGraphicscene类,那么您只需覆盖QWidget的QWidget::keyPressEvent和QWidget::keyReleaseEvent方法 class MyGraphicsScene : QGraphicsScene { void keyPressEvent(QKeyEvent *event); } /

我有一个graphicsview和一个GraphicsCenter,但我不知道如何安装和处理事件过滤器来获取键盘事件。有人能帮我吗


提前感谢。

如果您已经创建了自定义的QGraphicscene类,那么您只需覆盖QWidget的QWidget::keyPressEvent和QWidget::keyReleaseEvent方法

class MyGraphicsScene : QGraphicsScene
{
    void keyPressEvent(QKeyEvent *event);
}

//in cpp
void MyGraphicsScene::keyPressEvent(QKeyEvent *event)
{
    // do sth with event
}

如果您只是使用QGraphicscene的istance,则可以使用父级的keyPressEvent。无论您是否必须提供更多详细信息,您有两种选择:

1基于QGraphicsView创建您自己的类并覆盖keyPressEvent。只有当你要改变很多其他事情时,这才有意义


2使用installEventFilter安装事件筛选器。。方法,并将筛选器对象传递给该对象,该对象将接收您可能需要的所有内容

是否要处理整个视图的事件?具体项目?请给我们更多的信息。对于整个视图,我想安装事件过滤器。