2010-07-22 8 views
0

J'ai un graphicsview et un graphicsscen, mais je ne sais pas comment installer et gérer le filtre d'événements pour obtenir les événements du clavier. Est-ce que quelqu'un peut m'aider avec cela?Comment installer et gérer le filtre d'événements à Qt graphicsview

Merci d'avance.

+0

Voulez-vous gérer les événements pour toute la vue? Pour des articles spécifiques? S'il vous plaît, donnez-nous plus d'informations. – andref

+0

ya pour vue globale je veux installer le filtre d'événement. – Naruto

Répondre

0

Si vous avez créé une classe QGraphicsScene personnalisée, vous pouvez remplacer les méthodes "QWidget :: keyPressEvent()" et "QWidget :: keyReleaseEvent()" de QWidget.

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

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

Si vous utilisez juste un istance de QGraphicsScene, vous pouvez utiliser keyPressEvent des parents. Si oui ou non vous devez donner plus de détails

0

Vous avez deux options pour ce faire:

1) Créez votre propre classe basée sur QGraphicsView et passer outre keyPressEvent(). Cela n'a de sens que si vous allez changer beaucoup d'autres choses.

2) Installer le filtre d'événements, en utilisant installEventFilter (..) méthode et y passer l'objet de filtre qui recevra tout ce que vous pourriez avoir besoin