Seite 1 von 1

[gelöst] in MousePressEvent abfragen von MouseDoubleClick...

Verfasst: 3. September 2010 09:37
von metz153
Hallo,

ich habe eine Klasse von QGraphicsView abgeleitet und habe hierzu die MousePressEvent und MouseDoubleClickEvent reimplementiert.
Leider wird nun bei einem MouseDoubleClickEvent (Navigieren in ein QGraphicsItem) auch der MousePressEvent (Selecktieren eines Items) aufgerufen, was auch so in der Doku steht...
Nun ist es dann so, dass bei einem Doppelklick ein item auch Selektiert (aber bei dem 2.Click des Doppelklicks nicht deselektiert) wird.
In der Doku Habe ich dabei leider nur den Satz gefunden, dass sich der Entwickler selbst drum kümmern muss, dass es richtig gehandelt wird, dass ein MousePressEvent und ein MouseDoubleClickEvent entsprechend funktionieren.
Aber ich habe da nichts dazu gefunden, wie man das abfangen kann.

Ich möchte nun also in der MousePressEvent abfragen, ob es ein MouseDoubliClickEvent ist und umgekehrt, um dann ggf. direkt die Event-Routine wieder verlassen zu können.
Hat da jemand ne Hilfe für mich?

Vielen Dank

Verfasst: 3. September 2010 12:25
von Mr.Blonde
Ich glaube das kannst du vom gelieferten Event abfragen.

Mit event->type() und einer der Werte aus:
http://doc.qt.nokia.com/4.6/qevent.html#Type-enum

if(event->type() == QEvent::MouseButtonPress)
if(event->type() == QEvent::MouseButtonDblClick)

Gruß Mr.Blonde

Verfasst: 3. September 2010 16:18
von metz153
Hi,
vielen Dank erstmal für die schnelle Antwort.

Leider muss ich sagen, dass der Tipp von dir nicht Funktioniert, da er, wenn er in das MousePressEvent reinläuft auch den Entsprechenden type hat.
-Habs auch ausprobiert, und es ging leider nicht.

momentan habe ich das so gemacht, dass er immer bei einem Doppelklick

Code: Alles auswählen

item->setSelected(false)
mache, da er immer erst in pressEvent reingeht, indem ich ein setSelected(true) mache, und danach in den DoppelKlickEvent

Für weitere Ratschläge wäre ich jedoch froh, da das ja nicht wirklich die Lösung sein kann...

Verfasst: 3. September 2010 16:56
von upsala
Im MousePressEvent Timer starten, (Interval aus QApplication auslesen) und wenn innerhalb dieser Zeit kein DoubleClick erfolge, PressEvent ausführen...

Verfasst: 14. September 2010 16:47
von metz153
sorry, dass ich erst jetzt schreibe...
ich danke für den Vorschlag.
Komme momentan aber leider nicht zur Umsetzung, da sich meine Prioritäten geändert haben.

Danke nochmal an alle

Verfasst: 15. September 2010 08:58
von RavenIV
Das Problem hatte ich auch schon.
Ein Doppelklick löst automatisch auch einen Single-Klick aus.

Ich wollte eigentlich den Doppelklick auf ein Image verhindern, sodass nur ein Single-Klick funktioniert. Nun habe ich es eben anderst rum gemacht. :-(