QPainter: nur Änderungen neu zeichnen

Alles rund um die Programmierung mit Qt
Antworten
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

QPainter: nur Änderungen neu zeichnen

Beitrag von slash-ex »

Ist es möglich, nachdem eine Szene gezeichnet wurde aus Geschwindigkeitsgründen nur die Veränderungen neu zu zeichnen? Wenn ja, wie?
phil collins
Beiträge: 19
Registriert: 22. August 2007 17:35

Beitrag von phil collins »

Arbeitest du mit QGraphisScene oder mit einem normalen QWidget, auf dem du zeichnest?
Euer Phil.
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Beitrag von slash-ex »

Bisher benutze ich nur ein normales QWidget.

Ich habe eine ziemlich große Anzahl an Objekten die gezeichnet werden müssen, und dann kommt noch hinzu dass es halt recht schnell werden soll, weil der Nutzer mit der Maus Dinge verschieben können muss und das wird dann halt träge. Ist eine GraphicsScene evtl. die bessere Wahl?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schau dir mal die 40.000-Chips-Demo an und beurteile selbst...
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Beitrag von slash-ex »

mein letzter beitrag war reine rhetorik :cry:

aber mal ne kleine frage: müsste die graphic-scene nicht auf ähnliche weise funktionieren wie die paintevent fkt. die das qwidget bereitstellt? gibt es keine möglichkeit sowas ohne die benutzung von ner graphicscene/view zu regeln?
dass sie in der tat nicht genauso fkt. kann ist mir bewusst, wenn ich die demo ausführe ohne dass die performance enorm absinkt.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Eine der Funktionen des QGraphicsView ist, daß nur paintEvents für Bereiche des Widgets gesendet werden, die sich auch wirklich geändert haben. Und es werden dann auch nur diese Bereiche und nicht das ganze Widget neu gezeichnet.
Antworten