代码之家  ›  专栏  ›  技术社区  ›  Naruto

如何在Qt graphicsview中安装和处理事件过滤器

  •  0
  • Naruto  · 技术社区  · 14 年前

    graphicsview 还有一个 graphicsscen ,但我不知道如何安装和处理获取键盘事件的事件筛选器。有人能帮我吗?

    提前谢谢。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Cahit Burak Küçüksütcü    11 年前

    如果您已经创建了自定义的qgraphicscene类,那么只需覆盖QWidget的“QWidget::keypresevent()”和“QWidget::keyReleaseEvent()”方法。

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

    如果您只是使用qgraphicscene的距离,那么可以使用parent的keypresevent。你是否必须提供更多的细节

        2
  •  0
  •   evilruff    11 年前

    您有两种选择:

    1) 基于QGraphicsView创建自己的类并重写keypresEvent()。只有当你要改变很多其他事情的时候,这才有意义。

    2) 使用installEventFilter(..)方法安装事件过滤器,并传递过滤器对象,该对象将接收您可能需要的所有内容