Cameron Laird wrote: > On Wed, Mar 05, 2008 at 05:55:37PM +0100, Gigs_ wrote: > . > . > . > >>> I wrote a simple GUI with tkinter which executes a function when >>> pressing a button. When I press the button, the function indeed executes >>> starts running itself (it's a loop which draws a graph using gnuplot). >>> As long as the loop is running, I can't access the GUI - it's grayed >>> out. Only when I break the loop can I properly see the GUI back again. >>> >>> >>> Is this something you're familiar with or did I define the GUI improperly? >>> > . > . > . > >> you will need to make thread for that function to separate execution >> from gui >> > . > . > . > Coding with threads certainly is one common approach. As > the e-mail I just sent hints, it's not the only one--and > sometimes not the best. > Cameron, is it possible to give a more tkinter-specific hint, i.e. in the tkinter syntax? I started reading through the link you mentioned but the syntax looks more like core Tk/Tcl. In other words, how do I make a thread (or an equivalent solution) for a function in tkinter-python? Let's say that the code looks like the following sample: import Numeric, time, Gnuplot
def cooldown() A = Numeric.arange(-1, 1, .1) delay = 5 ######################################## ######################################## X = [] Y = [] XY = [] g = Gnuplot.Gnuplot() g('set data style linespoints') try: while A[0]<10: val1 = 1 val2 = 2 XY.append([val1, val2]) if len(XY) > 1: g.plot(XY) except KeyboardInterrupt: # Pressing Ctrl-C will result in ending the program but saving all the data taken so far pass return g win1 = Tk() win1.title('Control Panel') RunFrame = Frame(win1, bd = 2, relief = 'groove') RunCooldown = Button(RunFrame) RunCooldown.configure(text = 'Cooldown', fg = 'blue', command = cooldown, cursor = 'target') RunCooldown.pack(side = LEFT) Thanks, Amit.
_______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss