Seite 1 von 1

QGraphicsItem und mousepressevent

Verfasst: 6. Oktober 2006 19:17
von baseman37
Hi,
Vorgeschichte:
Ich stelle eine QGraphicsScene in einer QGraphicsView dar. In der QGraphicsView gibt es verschiedene Mouse Events(aber keins verwendet die linke Taste) um z.B die scalierung zu aendern. Ausserdem fuege ich der QGraphicsScene mehrere QGraphicsItems zu. Diese QGraphicsItems bestehen aus QPainterPath's.(Also im Grunde QGraphicsPathItem). Die Sichtbare Dicke der Items soll nicht groesser als 2 sein.
Jetzt moechte ich die QGraphicsItems per links Mouse click auswaehlen, und z.B ihre eigenschaften irgendwohin schreiben. Dazu habe ich mousePressEvent innerhalb der Item's ueberladen.
Problem:
Ich muss die Linie ganz genau treffen, was garnicht so einfach ist, also haette ich gerne einen Bereich um die Linie in der das auswaehlen funktioniert. Da sich die linien abber oft ueberkreuzen faellt die moeglichkeit das mit dem bounding... zeugs zu machen weg.
Ausserdem kann ich immer nur das zuerst hinzugefuegte item auswaehlen. Loesche ich dieses dann kann ich das naechste auswaehlen. (Eigentlich sollte das mousepressevent dann doch fuer jedes item anschalgen oder?)

Vielleicht kann mir ja einer nen guten Tipp geben wie ich die Probleme loesen koennt. Bin naemlich kurz vorm ausrasten.Vielen Dank schonmal im vorraus

Verfasst: 9. Oktober 2006 14:50
von upsala
Überschreib das mousePressEvent von QGraphicsScene und frag dann dort mit

Code: Alles auswählen

QList<QGraphicsItem *> QGraphicsScene::items ( const QRectF & rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape ) const
ab, welche Items in einem bestimmten Umkreis zu Maus-Position liegen.

Verfasst: 11. Oktober 2006 08:42
von baseman37
Hi danke, das war ja einfach, hab den Wald vor lauter baeumen nicht gesehen