QGraphicsView + QDrag + Scrollen

Alles rund um die Programmierung mit Qt
Antworten
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

QGraphicsView + QDrag + Scrollen

Beitrag von dazedly »

Ich bin momentan am rausfinden, wie ich das QGraphicsView dazu bringen soll zu scrollen, wenn ich beim draggen eines Items entweder das Mausrad bewege, oder wenn ich an den Rand gehe.
Leider blockiert mir QDrag alle anderen events.
Zuletzt geändert von dazedly am 26. Januar 2011 18:11, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

dragLeave, dragMove, dragEnter-Events?
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

Ja die sind aktiv, aber damit kann ich nicht wirklich etwas anfangen. Das wheelEvent bringt mich leider nicht weiter. Ich muss irgendwie scrollen können mit dem Item im drag...
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

Mir würde es ja fast schon reichen, wenn ich autoscroll irgendwie aktivieren könnte. Er soll scrollen, wenn ich mit einem QDrag an den Rand gehe...
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

*Push* Hat niemand ne Idee, wie ich autoscroll aktivieren kann, oder muss ich das zwingend selbst implementieren?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QGraphicsView hat kein AutoScroll.
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Schau dir an, wie es in der abstractitemview.cpp gemacht wird und pass es entsprechend deiner Bedürfnisse an. Dort gibt es für das AutoScroll margins und es wird jeweils currentIndex gescrollt, das muss bei dir dann eben eine Verschiebung in die entsprechende Richtung sein.
Musst das wohl selbst implementieren und dann eben die aktuelle Cursorposition abfragen und die Ansicht in die entsprechende Richtung verschieben.
Antworten