strange Tkinter problem
syver-en+usenet at online.no
Wed Dec 26 16:56:59 CET 2001
tjiit <tjiit at yahoo.com> writes:
> On Wed, 26 Dec 2001 08:38:09 +0100, Luke wrote:
> > This is behavior common to pretty much all GUI's. Your callback
> > function triggered by a button click should run in a new thread, or
> > spawn a new thread in which the networking code runs.
> Does this mean that the GUI should do this or me?
You have to do it. The GUI has no way of knowing that you want to
start a thread.
It's easy to create threads in python. Use the
Derive a new class from threading.Thread:
Define a run method that does the work you want to have done:
# code written here will run in it's own thread
Call you threads start method:
task = MyTask()
Be aware that you should NOT call tkinter methods from the run method
of the thread object, because tkinter doesn't support this.
Check out the after method in tkinter and the Queue.Queue class for
ways to get your data when the thread finishes. See also the reference
on the join method and isAlive for the threading.Thread class.
Mail or post if you need further help.
More information about the Python-list