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

Alles rund um die Programmierung mit Qt
Antworten
metz153
Beiträge: 20
Registriert: 25. Mai 2010 10:41
Wohnort: Landau/Pfalz

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

Beitrag 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
Zuletzt geändert von metz153 am 14. September 2010 16:46, insgesamt 1-mal geändert.
Mr.Blonde
Beiträge: 10
Registriert: 29. Juli 2010 12:14

Beitrag 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
metz153
Beiträge: 20
Registriert: 25. Mai 2010 10:41
Wohnort: Landau/Pfalz

Beitrag 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...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Im MousePressEvent Timer starten, (Interval aus QApplication auslesen) und wenn innerhalb dieser Zeit kein DoubleClick erfolge, PressEvent ausführen...
metz153
Beiträge: 20
Registriert: 25. Mai 2010 10:41
Wohnort: Landau/Pfalz

Beitrag 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
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag 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. :-(
Linux, das längste Text-Adventure aller Zeiten
Antworten