[gelöst] GraphicsView in diesem Fall notwendig?

Alles rund um die Programmierung mit Qt
Antworten
schmode
Beiträge: 2
Registriert: 19. Dezember 2006 10:15
Wohnort: Hamburg

[gelöst] GraphicsView in diesem Fall notwendig?

Beitrag von schmode »

Hallo!

Ich bin ein völliger Newbie auf dem Gebiet Qt, somit sollte die folgende Frage hoffentlich einfach zu beantworten sein. :wink:
Also folgendes.

Mein Programm soll ein simples Fenster sein, auf dessen rechter Seite in einem Dockwidget aus einem Ordnerbaum .dll's ausgewählt werden können.
Diese werden per Drag&Drop geladen und als Rechtecke mit Pins dargestellt. Untereinander können die Pins grafisch durch Linien verbunden werden. Die Linien sollen beim Verschieben der Module angepasst werden um die Vebindung zu erhalten.

Die Frage lautet: Muss ich, um diese grafische Rafinesse zu realisieren, ein GraphicsScene (ehemals Canvas) erstellen?
Oder kann ich die Module als einfache Widgets darstellen und irgendwie mit Linien verbinden? Das wäre doch bestimmt einfacher...

Daaanke
Zuletzt geändert von schmode am 21. Dezember 2006 14:45, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nein must du nicht, es dir überlassen das zu verwenden, womit du dich leichter tust...
schmode
Beiträge: 2
Registriert: 19. Dezember 2006 10:15
Wohnort: Hamburg

Beitrag von schmode »

Hehe... :) danke

Die Frage zielte darauf ab, ob es denn MÖGLICH sei, ohne GraphicsView die Verbindungslinien darzustellen.
Deiner Antwort zufolge scheint es also kein Problem zu sein. Dann werd ich mal schaun.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Das QGraphicsView Framework nimmt dir halt recht viele Sachen ab. Jedes Item kannst du recht einfach mit Drag'n drop ausstatten, eigene Mouse-in/out/etc -Reaktionen ausführen, usw. Ich denke in deinem Fall ist dies die einfachste Lösung.
Für jedes Item ein eigenes Widget, und diese mit Linien zu verbinden halte ich für weniger optimal und schwer zu realisieren. Wenn dann noch alles selbst mittels QPainter/paintEvent malen.

Mein Tip also: arbeite dich in das QGraphicsView-Konzept ein und werde glücklich ;)

Grüße
Franz
Antworten