Text widget updates only after calling method exits (threading issue?)
Eric Brunel
see.signature at no.spam
Wed Dec 12 03:43:44 EST 2007
On Wed, 12 Dec 2007 02:58:37 +0100, mariox19 <mariodiana at gmail.com> wrote:
> Are Tkinter widgets running on their own thread?
No. And usually, GUI toolkits and threads don't mix well...
> If I try to make a simple application that will print the letters A to
> Z to a Tkinter Text widget, and I space the printing of each letter by
> 1 second, it seems no text will appear in the Text widget until the
> method exits.
>
> Take a look at this snippet:
>
> # Assume I have created no threads other than the one that comes
> with Main
>
> def printToTkinterTextWidget(text):
> """
> Prints A-Z to the Text widget, 1 letter per second.
> """
> # Problem: no text appears in the widget until 26 seconds has
> elapsed
> for aNumber in range(65, 91):
> self.textWidget.insert(END, text)
> time.sleep(1)
time.sleep will not give back the control to the Tkinter mainloop, so your
text widget won't be refreshed on screen. Try:
self.textWidget.update_idletasks()
before the sleep.
HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
More information about the Python-list
mailing list