Forum: PC-Programmierung C++, Qt: Mausevents in QGraphicsScene und -View


von Vitali (Gast)


Lesenswert?

Hi,
ich finde leider kein Beispiel, das mein Problem löst, daher eine Frage 
zu der event-propagation (heisst das so?) in Qt, insb. zum Thema 
Mausklick in einer QGraphicsScene, die über QGraphicsView dargestellt 
wird.
Beide sind als eigene Klassen realisiert, die die Mausevents abfangen:

1
void MyGraphicsView::mousePressEvent(QMouseEvent *event)
2
{
3
    if (event->button() == Qt::LeftButton)
4
    {
5
        qDebug() << "clicked";
6
        event->accept();
7
        return;
8
    }
9
    event->ignore();    
10
}

1
void MyGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
2
{
3
    qDebug()<<"clicked";
4
}


Ziel ist, zu erkennen, welches Element geklickt wurde, aber ich bekomme 
noch nicht mal ein "clicked" -- muss das event irgendwie weitergereicht 
werden (von parent zu child?)?

Nach Möglichkeit möchte ich vermeiden, auch die Elemente der Scene zu 
subclassen (wie nennt man das? "beerben"?) sondern auf der Ebene der 
Scene die Elemente zu erkennen  (itemAt()?).

von Vitali (Gast)


Lesenswert?

Die Frage bringt die Stichworte für eine Iteration:
1
QGraphicsView::mousePressEvent(event); // default implementation

(http://stackoverflow.com/questions/10591635/can-i-get-mouse-events-in-a-qgraphicsitem)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.