Hello Tkinter community, I'm a relatively experienced Python/Tk programmer having worked on multiple larger scale projects now, and I'm having two issues with Tkinter:
------------1---------- Linux implementations of Python/Tkinter (the most current) seem to exhibit the problem, but not Sun/Solaris or Windows. Essentially, I can't animate objects on a canvas without leaking memory at about 1Mb/s . I've tried 4 different methods, either deleting and redrawing objects, or just moving objects, and either using Tk tags to label and operate the objects, or storing their IDs in my program and operating with them that way. I can't think of any other way to do this, and I basically need to. I would try the WCK to make my own, but the idea is to have the software run on a base install of Python. The link to the four example test scripts I wrote up is here: http://web.mit.edu/mhaimes/Public/tktest.tar ------------2---------- The Mac OS X implementation of Python seems to exhibit this problem, and no other systems. This problem is related to the above, namely, on the Mac animation seems to be totally broken. Whenever Tk is running its event loop, it stops all other python threads from processing and sits and waits for input. So my example code below runs a counter in a background thread which increments the number Tk has displayed. On Windows/Linux, it just counts up until you press exit. On the Mac, it will sit there and freeze if you aren't inputting anything, but as soon as you wave the mouse around or start typing it'll continue to increment; whereas on Windows and Linux, the counter just counts up no matter what you are inputting. I know this could be done without two separate threads, but the real program that this is modelling an issue I'm having needs Tk to be in its event loop, so that is not an option. Test code as follows: ################# import Tkinter import thread import sys app = Tkinter.Tk() text = Tkinter.StringVar() Tkinter.Label(app, textvariable = text).pack() def looper(): count = 0 while 1: text.set(`count`) count+=1 thread.start_new_thread(looper, ()) Tkinter.Button(app, text="exit", command = sys.exit).pack() app.mainloop() ############## ----------------------- If anyone has any hints or suggestions for workarounds for either of the above problems, it would be much appreciated. Or if you just run any of the test programs on your systems and get different results than I predicted for you, tell me some things about your system and what happened. -Mike Haimes _______________________________________________ Tkinter-discuss mailing list [email protected] http://mail.python.org/mailman/listinfo/tkinter-discuss
