[gelöst] Markieren von QGraphicItems in einem QGraphicView
Verfasst: 7. Oktober 2008 16:12
Hallo,
ich habe einen GraphicView in dem ich definierte Items darstelle. Jetzt möchte ich mit der rechten Maustaste ein Item markieren. Für die verschiedenen Zustände habe ich für ein Item verschiedene Farbe gewählt:
Ich habe dann die Funktionen für mousePressEvent und mouseReleaseEvent überschrieben und ggf. noch die Methode der Basisklasse aufgerufen.
Wenn ich die Karte auf der die Items platziert sind dann mit der Maus im GraphicsView mal bewege und dann versuche ein Item zu markieren funktioniert alles wunderbar.
Mache ich aber nur einen Klick auf den Hintergrund, dann lassen sich meine Items nicht markieren obwohl das erste was ich in meiner Event-Funktion mache, das Setzen des aktiven Items mit setSelect() ist. Sobald ich die Maustaste wieder loslasse sind sie wieder im unmarkierten Zustand. Verschiebe ich den Hintergrund etwas, wieder alles einwandfrei...
Am mouseMoveEvent liegt es nicht, das habe ich auch überschrieben und mal mit und ohne BasisMethoden-Aufruf probiert.
Was mache ich falsch oder welchen Zustand habe ich noch nicht beachtet?
Vielen dank.
ich habe einen GraphicView in dem ich definierte Items darstelle. Jetzt möchte ich mit der rechten Maustaste ein Item markieren. Für die verschiedenen Zustände habe ich für ein Item verschiedene Farbe gewählt:
Code: Alles auswählen
if (this == scene()->mouseGrabberItem())
mColor=QColor(255,1,1,75);
else if (this->isSelected())
mColor=QColor(255,1,1,255);
else
mColor=QColor(1,255,1,50);
Wenn ich die Karte auf der die Items platziert sind dann mit der Maus im GraphicsView mal bewege und dann versuche ein Item zu markieren funktioniert alles wunderbar.
Mache ich aber nur einen Klick auf den Hintergrund, dann lassen sich meine Items nicht markieren obwohl das erste was ich in meiner Event-Funktion mache, das Setzen des aktiven Items mit setSelect() ist. Sobald ich die Maustaste wieder loslasse sind sie wieder im unmarkierten Zustand. Verschiebe ich den Hintergrund etwas, wieder alles einwandfrei...
Am mouseMoveEvent liegt es nicht, das habe ich auch überschrieben und mal mit und ohne BasisMethoden-Aufruf probiert.
Was mache ich falsch oder welchen Zustand habe ich noch nicht beachtet?
Vielen dank.