On Thu, 19 Apr 2012, Bharath Reddy A. wrote:

Hi all,I have created a GUI using Tkinter. 
I have a button "GO", which when clicked calls a function (mainFunc).
That function takes around 60 seconds to execute and in the mean time outputs 
many numbers which have to be
displayed in a list in the GUI.

I have attempted the following:
 1.  I created a thread whose target = mainFunc, when the button is clicked. I 
can see the function printing
    stuff in terminal. But the GUI still freezes.
 2.  When I tried to create a  thread whose target = root.mainloop(), the GUI 
doesn't display at all,
    (Python.app launches but the GUI is not displayed), 
Can you please help me how to create threads exactly???

You probably don't *really* want to execute a separate thread - it's usually a better idea to let Tkinter handle the parallelism. You can use the .after function (I think the syntax would be main.after(10, mainFunction) for your application, but Google will confirm), and then the .update_idletasks in your mainFunction. I'm assuming there's a loop involved (I haven't taken a look at your code), so you could launch that once every iteration of your loop.

It's been a while since I've had the pleasure of mucking with any of that, but it should give you the ability to have a responsive UI while still running your function.

HTH,
Wayne
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss@python.org
http://mail.python.org/mailman/listinfo/tkinter-discuss

Reply via email to