Seite 1 von 1

QPainter: nur Änderungen neu zeichnen

Verfasst: 24. November 2007 11:28
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?

Verfasst: 24. November 2007 11:57
von phil collins
Arbeitest du mit QGraphisScene oder mit einem normalen QWidget, auf dem du zeichnest?

Verfasst: 24. November 2007 12:29
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?

Verfasst: 24. November 2007 13:55
von upsala
Schau dir mal die 40.000-Chips-Demo an und beurteile selbst...

Verfasst: 24. November 2007 15:01
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.

Verfasst: 24. November 2007 16:38
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.