Seite 1 von 1

[gelöst] - mouseMoveEvent weiterreichen ?

Verfasst: 15. August 2007 17:35
von hilby
hallo,
ich habe folgendes Problem mit meinem GraphicView:

mit

Code: Alles auswählen

void dtRaster::mouseMoveEvent(QMouseEvent * e)
{
    sendStatus(QString("%1:%2 ").arg(e->x()).arg(e->y()));
}
lass ich mir die Mauszeigerposition anzeigen...
wenn ich das mache, kann ich keine QGraphicsItems mehr draggen oder
eine SelektionsRechteck aufziehen - was auch immer, das Move-Event scheint zu versacken....

wenn ich die Funktion weglasse geht alles

- kann ich den MouseEvent irgendwie weiterreichen ?
- ..oder am leben erhalten ?
bei bool-Funktionen geht das ja mit " return QWidget::event(event);"

hat jemand eine Idee ?
danke

Verfasst: 16. August 2007 07:11
von macman
Die Suchfunktion des Forums nutzen? Oder vielleicht auf die Idee kommen die entsprechende Funktion der Basisklasse aufzurufen.

Verfasst: 16. August 2007 08:03
von hilby
Das Forum nutze ich intensiv !

Ich würde hier keine Frage stellen, wenn die Antwort schon hier oder bei Google stehen würde - danke auch

Die Funktion der Basisklasse (QGraphicsView) will ich ja gerade überschreiben oder erweitern...

Dummerweise ist bei der der Rückgabewert void - wenn er bool wäre könnt ich ein Event übergeben und alles wäre in Butter....

Verfasst: 16. August 2007 08:25
von macman
hilby hat geschrieben:Die Funktion der Basisklasse (QGraphicsView) will ich ja gerade überschreiben oder erweitern...
Das tust Du aber nicht, Du ersetzt sie. Wenn Du sie erweitern willst, dann muss der Aufruf der Basisklassenfunktion mit rein, wobei der am Anfang oder Ende steht, je nach dem was Du machen willst. In der Mitte ginge vielleicht auch, habe ich aber noch nicht gesehen.

Zum Verständnis:

Code: Alles auswählen

void dtRaster::mouseMoveEvent(QMouseEvent * e)
{
    QGraphicsView::mouseMoveEvent(e); // jetzt wird erst der Event bearbeitet und dann kommt deine Erweiterung

    sendStatus(QString("%1:%2 ").arg(e->x()).arg(e->y()));
}

Verfasst: 16. August 2007 09:00
von hilby
Tausend Dank !!!

Dieser Ansatz hat mir gefehlt - funktioniert nun alles super :D