Как установить и обработать фильтр событий в Qt graphicsview - PullRequest
0 голосов
/ 22 июля 2010

У меня есть graphicsview и graphicsscen, но я не знаю, как установить и обработать фильтр событий для получения событий клавиатуры.Кто-нибудь может мне помочь с этим?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2014

У вас есть два варианта сделать это:

1) Создайте свой собственный класс на основе QGraphicsView и переопределите keyPressEvent (). Это имеет смысл, только если вы собираетесь изменить много других вещей.

2) Установите фильтр событий, используя метод installEventFilter (..), и передайте туда объект фильтра, который получит все, что вам может понадобиться

0 голосов
/ 28 февраля 2014

Если вы создали собственный класс QGraphicsScene, вы можете просто переопределить методы QWidget «QWidget :: keyPressEvent ()» и «QWidget :: keyReleaseEvent ()».

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

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

Если вы просто используете istanceQGraphicsScene, вы можете использовать родительский ключ keyPressEvent.Должны ли вы предоставить более подробную информацию

...