QWidget vs. QGraphicsWidget

Alles rund um die Programmierung mit Qt
Antworten
astrunck
Beiträge: 6
Registriert: 13. April 2011 16:50

QWidget vs. QGraphicsWidget

Beitrag von astrunck »

Hoi,

dies hier ist zwar schon ein konkretes Problem, aber vielleicht kann man ja unabhängig davon eine kleine Diskussion auf-erleben lassen, um mal Wissen zu diesem Thema zu sammeln.

Folgendes Problem:
Es gibt mehrere Fenster, in jedem dieser Fenster wird ein Pool von grafischen Objekten dargestellt. Die Anzahl der Objekte reicht von 10-5.000. Maximal werden gleichzeitig ca. 50 Objekte angezeigt. (Bei max. 5 Fenstern, wären es dann 200..)
Die grafischen Objekte reichen von Linie, über Polygon, Eingabefeld bis hin zu Bitmaps.
Man kann in das Fenster mit den dargestellten max. 50 Objekten hinein zoomen und hinaus zoomen.
Man kann die Fenster durch Drag und Drop verschieben. Durch eine Pan-Gesture kann man auf die nächste Seite wechseln, mit weiteren 4 Fenstern. Hier würde dann mit QTimeLine gearbeitet werden.
Das ganze läuft Embedded. ( :D , ja das auch noch...) Floating Point Unit ist allerdings vorhanden.

Das Graphic View Framework ist - "fürs Zoomen, Tranformieren und Darstellung von einer großen Anzahl von 2D Grafikelementen" - zuständig.

Variante Nr1. Man würde die grafischen Objekte im Pool mit QWidgets realisieren:
Gibt es eine max. Anzahl von Widgets? Kann ein Parent z.B. max. rekursiv nur 1000 Childrens haben?
Wenn ich nun das Fenster als QGraphicsProxyWidget in eine QGraphicsScene einbinde um skalieren zu können, wie verdammt bekomme ich es wieder aus der Scene extrahiert? Löscht man die Scene, löscht man auch alle Items. Lässt man den Pool im QGraphicsProxyWidget und fügt ihm ein neues Objekt hinzu, wird für das neue Children autom. auch ein QGraphicsProxyWidget angelegt - was nicht gewollt ist.

Variante Nr2. Man würde die grafischen Objekte im Pool mit QGraphicsItem realisieren:
Nach einigem Googeln, habe ich mal gelesen, dass die Entwicklung bei QT dorthin geht, dass das QWidget immer mehr Eigenschaften des QGrapicsItems erhalten soll, man aber leichter von QWidget nach QGraphicsItem wechseln kann als andersherum. Verbaut man sich zukünftige Features?
Performance: Trotz FPU, würde hier QGraphic nicht das ganze System lahmlegen?

Ich weiß, viel Text :roll: viel blabla, aber vielleicht hat ja der ein oder andere bereits Erfahrung gesammelt.

Grüße
Anne
Antworten