[gelöst] - mouseMoveEvent weiterreichen ?

Alles rund um die Programmierung mit Qt
Antworten
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

[gelöst] - mouseMoveEvent weiterreichen ?

Beitrag 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
Zuletzt geändert von hilby am 16. August 2007 09:01, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Die Suchfunktion des Forums nutzen? Oder vielleicht auf die Idee kommen die entsprechende Funktion der Basisklasse aufzurufen.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

Beitrag 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....
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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()));
}
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

Beitrag von hilby »

Tausend Dank !!!

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