Hey,
ich habe eine komplexere Grafik mit wxPython und PyAUI. Bei Aktualisierung der Controls, usw. flackern diese(verursacht durch Neuzeichnen).
Gibt es mit wxPython die Möglichkeit Grafiken(Frames) so zu zeichen, dass dies Flackern verhindert wird???
Also im Hintergrund(virtuell) neu zeichen und dann die Grafik auf dem Desktop darstellen.
Danke
george
GUI, Flackern verhindern
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi george!george hat geschrieben:Bei Aktualisierung der Controls, usw. flackern diese(verursacht durch Neuzeichnen).
Vielleicht kannst du schon etwas mit Freeze() und Thaw() erreichen.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hi,gerold hat geschrieben:Hi george!george hat geschrieben:Bei Aktualisierung der Controls, usw. flackern diese(verursacht durch Neuzeichnen).
Vielleicht kannst du schon etwas mit Freeze() und Thaw() erreichen.
mfg
Gerold
Ja, ich stimme dir (Gerold) zu, vielleicht genügt das schon.
Andere Möglichkeit ist "Double Buffer Drawing".
Aus Wiki:
What Is Double Buffering?
Double buffering is storing the contents of a window in memory (the buffer), so that the screen can be easily refreshed without having to re-draw the whole thing.
mit Code Sample:
http://wiki.wxpython.org/index.cgi/Doub ... redDrawing
Ob und wie das mit PyAUI funktioniert, musst du (george) selbst probieren.
Nachtrag: weiss nicht, ob das mit "Core Controls" funktioniert (buttons, listbox, ...).
Diese zeichnen sich ja praktisch von selbst, im gegensatz zu Grafiken,
wo man das EVT_PAINT event verwendet und mit Hilfe der Device
Contexts neu zeichnet.
Sonst würde ich auf jeden Fall einmal vorher Gerolds Methode probieren.