Seite 1 von 1

[gelöst] Markieren von QGraphicItems in einem QGraphicView

Verfasst: 7. Oktober 2008 16:12
von mathies
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:

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);
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.

Verfasst: 10. Oktober 2008 08:29
von mathies
Ok, hab jetzt ne Teillösung gefunden.

Hab mir ne eigene select methode geschrieben, die das Item gleich auch noch in der Scene neu zeichnet. Nun gehts...