Selektion der GraphicsItems im Bereich 0 und 1 nicht möglich

Alles rund um die Programmierung mit Qt
Antworten
Julia
Beiträge: 24
Registriert: 18. April 2011 14:42

Selektion der GraphicsItems im Bereich 0 und 1 nicht möglich

Beitrag von Julia »

Hallo,

verwende eine QGraphicsView
und eine QGraphicsScene
Das sceneRect ist auf 0,0 , 1,1 gesetzt
und dieses mit fitInView in der resize Methode der
Graphicsview eingepasst.

Meine RectItems haben die Größe 0.25 x 0.25
Die Darstellung funktioniert wunderbar.
Nur die Selektion und das Verschieben nicht.
Es werden nicht die, unter der Maus liegenden Items
selektiert - sondern beliebige!

Sobald ich die MouseEvent Methoden der Szene überschreibe
und ein mapToScene durchführe, erhalte ich die korrekten
Szenenkoordinaten im Bereich von 0 bis 1
Mit einem ItemAt erhalte ich auch das gewünschte Item

Möchte die Selektion und das Dragging nicht erneut implementieren
Gibt es ein Flag welches ich vergessen habe, so dass eine Selektion
im Bereich 0 bis 1 funktioniert?

Hat jemand eine Idee?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Ohne relevanten Code kann man leider nichts sagen. Du musst halt überall, wo du mit den Items oder der Scene arbeitest, in korrekte Koordinaten umrechnen.

Aber warum das das SceneRect fix setzt - k.A.! Lass es, das ist nicht ungefährlich, oder hast du nen speziellen Grund dafür? Das sceneRect enthält die (oft dynamische) Größe der Scene, wenn da falsche Werte drin stehen, bekommst du Probleme bei der Anzeige (nicht neu gezeichnete Bereiche, ScrollBars, etc). Mit fitInView kannst du auch so eine Scene deine View ausfüllen lassen, und mapFrom/To/... funktioniert da genauso. (Warum auch nicht :P)
Antworten