Merhfachauswahl von SVG-Objekten mit der Maus

Alles rund um die Programmierung mit Qt
Antworten
nibbel
Beiträge: 35
Registriert: 9. Mai 2007 10:30

Merhfachauswahl von SVG-Objekten mit der Maus

Beitrag 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.
nibbel
Beiträge: 35
Registriert: 9. Mai 2007 10:30

Beitrag von nibbel »

ist es denn nicht möglich die maus als auswahlmethode zu aktivieren?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich glaube das musst Du allein machen -> MouseEvents abfangen und auswerten.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nibbel
Beiträge: 35
Registriert: 9. Mai 2007 10:30

Beitrag von nibbel »

hmm mal schauen, ich hab da so eine idee, aber ob ich das so schnell umsetzen kann^^
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag von Allroad »

ob der nibbel das geschafft hat? Falls ja, mich würde auch interessiern wie das geht...
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag 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 ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag 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!
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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 :)
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag 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?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Da wir hier QGraphicsScene verwenden, könnten wir auch ein QGraphicsRectItem verwenden
Antworten