Seite 1 von 1

Performanz von QGraphicsView erhöhen?

Verfasst: 4. Februar 2010 11:50
von Andy2211
Hallo,
könnt Ihr mir ein paar Tips geben, wie ich die Performanz von den Graphen erhöhen kann?

Momentan benutze ich einen QTimer mit ca. 50ms und einem .addLine Aufruf.

Leider lahmt das ganz ein bisschen (Antial. etc. schon ausgeschaltet).
Was gibt es noch für Möglichkeiten?

Gruß,
Andy

Verfasst: 4. Februar 2010 12:16
von upsala
Für die View ein OpenGL-Widget verwenden. Was machst du eigentlich konkret?

Verfasst: 4. Februar 2010 13:27
von Andy2211
Hi,
danke für den Tipp, aber das mache ich eigentlich schon (view->setViewport(new QGLWidget())?

Ich mache einen Graphen der mit fortlaufend werte als Diagramm anzeigen soll. Bei jedem Timeraufruf soll dann eine Linie zum nächsten Punkt gezogen werden.

Gruß,
Andy

Verfasst: 4. Februar 2010 13:33
von franzf
Ich trau mich wetten, du aktualisierst mit einem update() immer die komplette view, wenn eine neue Linie dazukommt...
Ansonsten brauchen wir Code.

Verfasst: 4. Februar 2010 15:36
von slash-ex
Das ist nicht so einfach zu verallgemeinern. Du kannst das Update()-Verhalten als erstes enstellen. Dann musst du bedenken, was den Widget können muss.
Wenn du sehr viele Items in der Scene hast, die sich alle in ihrer Position verschieben, dann wird das ganze wohl langsamer sein, als eine optimierte paintEvent()-Funktion, die nur den Teil malt, der gezeichnet werden soll, dafür aber Veränderungen berücksichtigt.
Zudem, kannst du sehr komplexe Scenen auch als Bild zwischenspeichern und dann zeichnen, bis sich was ändert. Allerdings gibts da evtl Probleme wenn die Scene sehr groß ist, bzw. der Ausschnitt darin geändert werden muss.
Außerdem kannst du in einem GraphicsView glaube den Hintergrund puffern und von Veränderungen ausnehmen.

Verfasst: 4. Februar 2010 17:38
von upsala
Von wievielen Linien reden wir hier eigentlich?