2010-07-22 83 views
0

我有graphicsviewgraphicsscen,但我不知道如何安装和处理获取键盘事件的事件过滤器。任何人都可以帮助我吗?如何安装和处理事件过滤器到Qt graphicsview

在此先感谢。

+0

你要处理整个视图的事件?对于特定项目?请给我们更多的信息。 – andref 2010-07-22 21:26:37

+0

雅整个视图我想安装事件过滤器。 – Naruto 2010-07-23 04:48:28

回答

0

如果你已经创建了自定义的QGraphicsScene类,你可以重写QWidget的“QWidget :: keyPressEvent()”和“QWidget :: keyReleaseEvent()”方法。

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

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

如果您只是使用QGraphicsScene的遗产,您可以使用父母的keyPressEvent。无论你是否必须提供更多的细节

0

你有两个选择这样做:

1)创建自己的类基础上的QGraphicsView并重写keyPressEvent()。如果你要改变很多其他的东西,这才有意义。

2)安装事件过滤器,使用installEventFilter(..)方法,并通过有过滤器对象将接收所有你可能需要