QGraphicsView/QGraphicsScene - schlechte Performance
Verfasst: 31. Mai 2009 13:33
Hallo zusammen,
ich bin noch neu in der QT-Welt, möchte euch aber trotzdem um Rat fragen.
Es geht darum, eine große Menge von Bildern zu visualisieren. Dazu habe ich mir das QGraphicsFramework angeschaut, mit den Beispielen herumexperimentiert (u.a. das Chip-Example) und habe dann mal angefangen, was eigenes aufzusetzen.
Es funktioniert soweit auch alles recht gut, nur bin ich nun an einem Punkt angekommen, an dem die Performance deutlich abnimmt und mein Programm überhaupt nicht mehr benutzbar wird.
Mein Projekt besteht bisher aus einem MainWindow, einer View-Klasse (von QGraphicsView), einer Scene (QGraphicsScene) und einer eigenen Item-Klasse.
Jedes Item stellt ein Bild (ca. 140x200 Pixel) dar, welches ich als QPixmap dort halte. Die Items selbst sind "statisch", d.h. nicht selektierbar, nur die View kann per "setDragMode(QGraphicsView::ScrollHandDrag)" verschoben und gezoomt werden.
Und das ist mein eigentliches Problem: Wenn ich herauszoome und mehr als ca. 200 Items sichtbar sind, kann ich weder zoomen noch scrollen, ohne zwischendurch Tee trinken zu gehen
! Es ist einfach nicht performant.
Auch das Chip-Beispiel lässt sich nach dem totalen rauszoomen nicht wirklich gut scrollen, aber bis zu einem gewissen Grad ist es noch gut machbar.
Meine Frage nun: Wo kann ich ansetzen und die Performance verbessern? Gibt es Alternativen zum Graphics Framework in Qt? Vielleicht direkt als QGLWidget und dann alles selbst zeichnen?
Ich hab natürlich schon hier gesucht und auch google befragt, jedoch finden sich keine Ansätze für mein Problem mit sehr vielen Items?
Ich würde mich über Hilfe echt freuen!!!
Grüße,
Shapoc
System:
Win XP, AMD Athlon64 3200+, 1GB RAM
Qt 4.4.3
ich bin noch neu in der QT-Welt, möchte euch aber trotzdem um Rat fragen.
Es geht darum, eine große Menge von Bildern zu visualisieren. Dazu habe ich mir das QGraphicsFramework angeschaut, mit den Beispielen herumexperimentiert (u.a. das Chip-Example) und habe dann mal angefangen, was eigenes aufzusetzen.
Es funktioniert soweit auch alles recht gut, nur bin ich nun an einem Punkt angekommen, an dem die Performance deutlich abnimmt und mein Programm überhaupt nicht mehr benutzbar wird.
Mein Projekt besteht bisher aus einem MainWindow, einer View-Klasse (von QGraphicsView), einer Scene (QGraphicsScene) und einer eigenen Item-Klasse.
Jedes Item stellt ein Bild (ca. 140x200 Pixel) dar, welches ich als QPixmap dort halte. Die Items selbst sind "statisch", d.h. nicht selektierbar, nur die View kann per "setDragMode(QGraphicsView::ScrollHandDrag)" verschoben und gezoomt werden.
Und das ist mein eigentliches Problem: Wenn ich herauszoome und mehr als ca. 200 Items sichtbar sind, kann ich weder zoomen noch scrollen, ohne zwischendurch Tee trinken zu gehen
Auch das Chip-Beispiel lässt sich nach dem totalen rauszoomen nicht wirklich gut scrollen, aber bis zu einem gewissen Grad ist es noch gut machbar.
Meine Frage nun: Wo kann ich ansetzen und die Performance verbessern? Gibt es Alternativen zum Graphics Framework in Qt? Vielleicht direkt als QGLWidget und dann alles selbst zeichnen?
Ich hab natürlich schon hier gesucht und auch google befragt, jedoch finden sich keine Ansätze für mein Problem mit sehr vielen Items?
Ich würde mich über Hilfe echt freuen!!!
Grüße,
Shapoc
System:
Win XP, AMD Athlon64 3200+, 1GB RAM
Qt 4.4.3