[Tkinter-discuss] Tkinter slows down
Tim Jones
timj at tolisgroup.com
Tue Jan 8 00:11:52 CET 2008
On Jan 7, 2008, at 2:06 PM, Cam Farnell wrote:
> I'm creating a program which displays spreadsheet-like data using
> hundreds of labels. At first this works fine, however after a few
> redisplays it starts slowing down dramatically.
>
> A small test program, without the distractions of the real program is:
>
> from Tkinter import *
> def Go():
> LabelList = []
> for J in range(30):
> print J
Cam - this next line is probably the culprit. Calling forget doesn't
delete the instance of the control, so when you create the new Labels
below, you're building a huge stack of controls. I'd recommend
simply updating the label text so that you reuse the existing controls.
> for L in LabelList: L.grid_forget()
> LabelList = []
> for Row in range(20):
> for Col in range(20):
> L = Label(r,text='%s'%J
> L.grid(row=Row,column=Col)
> LabelList.append(L)
> r.update_idletasks()
> r = Tk()
> r.after(1000,Go)
> r.geometry('800x600')
> r.mainloop()
>
> This runs quickly at first but gradually slows down to a crawl during
> the latter iterations. Anyone have any idea what is causing this to go
> slow or how I could speed it up? I'm running Python 2.4.3 on an Ubuntu
> 6.06 system.
HTH,
Tim
More information about the Tkinter-discuss
mailing list