Seite 1 von 1
Merhfachauswahl von SVG-Objekten mit der Maus
Verfasst: 19. Juni 2007 14:03
von nibbel
Jeder kennt das ja, wenn man zb auf dem desktop mehrere dateien auswählen will dann muss man einfach an einer stelle die linke maustaste klicken und in die jeweilige richtung ziehen und dann wieder los lassen.
Dieses feature wollte ich bei mir auch einbauen.
Es wird eine Scene in einem View erzeugt, in diesem View liegen drei SVG-Objete. Diese sollen auch per maus in mehrfachauswahl makiert werden.
Es gibt sicherlich eine funktion um dieses feature zu erzeugen.
Kann mir da einer weiter helfen?
In der Klasse QMouseEvent finde ich keine passende funktion.
Verfasst: 20. Juni 2007 13:19
von nibbel
ist es denn nicht möglich die maus als auswahlmethode zu aktivieren?
Verfasst: 20. Juni 2007 13:53
von Christian81
Ich glaube das musst Du allein machen -> MouseEvents abfangen und auswerten.
Verfasst: 20. Juni 2007 14:45
von nibbel
hmm mal schauen, ich hab da so eine idee, aber ob ich das so schnell umsetzen kann^^
Verfasst: 14. Februar 2008 12:35
von Allroad
ob der nibbel das geschafft hat? Falls ja, mich würde auch interessiern wie das geht...
Verfasst: 14. Februar 2008 14:47
von VuuRWerK
Ich weiß nicht ob nibbel es geschafft hat oder wie er es gemacht hat aber ich würde es im groben folgend lösen:
Du hast ein QRect welches die Auswahl speichert. Angefangen bei der Position(QPoint topLeft) wo die Maus beginnt mit selektieren(linke Maustaste wird gedrückt gehalten), wenn die Selektierung endet(linke Maustaste wird losgelassen) speicherst Du den 2. Wert(QPoint bottomRight) für das QRect und schon hast Du einen Bereich welcher ausgewählt wurde. Und nun kannst Du überprüfen welches Deiner Objekte sich innerhalb dieses QRect befindet.
Sicher sehr grob beschrieben aber ich denke das wäre die gängigste Methodik.
Gut Schuß
VuuRWerK

Verfasst: 15. Februar 2008 12:11
von Allroad
Ja, an so was ähnliches habe ich auch gedacht... Muss mir nur noch überlegen ob ich in "Echtzeit" während der QDragMoveEvent mein Rechteck zeichne oder erst nach dem man die MouseTaste wieder loslässt.
Aber ich denke es ist nicht so kompliziert. Ich werd mal berichten was draus geworden ist!
Verfasst: 15. Februar 2008 12:50
von franzf
Warum kein Rubberband nehmen?
http://doc.trolltech.com/4.3/qrubberband.html
Dann noch das rect abfragen und mittels QGraphicsScene::items(QRectF)
die selektierten Items holen und fertig

Verfasst: 21. Februar 2008 16:54
von Allroad
das mit dem QRubberBand funktioniert soweit, allerdings würde ich gerne die Eigenschaften (z.B. Farbe) der "RubberBand" selber definieren. Nur komm ich mit dem QPainter nicht so toll zurecht... Gibt es nicht eine eifachere Möglichkeit?
Verfasst: 21. Februar 2008 17:19
von upsala
Da wir hier QGraphicsScene verwenden, könnten wir auch ein QGraphicsRectItem verwenden