[Python-de] Tkinter und Fortschritsbalken

Georg Mischler schorsch at schorsch.com
Sam Dez 6 20:09:23 CET 2003


Albert Hermeling wrote:

> Drueckt man auf den Startbutton soll eine Zahl berechnet werden, diese soll
> auf der Konsole ausgegeben werden. Zugleich muss sich der Fortschritsbalken
> um ein 10. weiterbewegen.
>
> Die Zahl wird berechnet und auf der Konsole ausgegeben. Die GUI ist aber
> wehrend der Berechnung blockiert. Der Fortschritsbalken bewegt sich nach Ende
> der Berechnung in Eins bis zum Ende.
>
> Weiss einer woran das Liegt und wie man das verhindern kann?
>
>
> Beispiel:
>
> [...]
>
> class Main(Rechne):
>
>     [...]
>
>     def fortschrit(self):
>         self.maingui.fortschrit()

          self.master.update()


Mit dem self.master.update() gibst du Tk die Gelegenheit, die
Oberflaeche neuzumalen. Anderenfalls ist diese notwendigerweise
blockiert, bist du aus deiner Callback-Routine zurueckkehrst.
Tk ist kein multithreaded-System wie z.B. MFC, wo solche Dinge
automatisch parallel laufen.


-schorsch

-- 
Georg Mischler  --  simulations developer  --  schorsch at schorsch com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/