help please: tkinter grid layout is very slow
Terry Reedy
tjreedy at udel.edu
Thu Nov 13 17:14:26 EST 2014
On 11/13/2014 3:45 PM, Rich Cook wrote:
> Hi, I'm trying to toss together an image browser in tkinter, and it is so slow it is unworkable. Here is my code. Can someone point out why it's so sloooow? :-) Thanks
>
> root = Tkinter.Tk()
> root.geometry("1000x280+300+300")
> label = Tkinter.Button(root, compound=Tkinter.TOP)
> label.pack()
>
> numimages = len(image_list)
> numcols = 6
> numrows = numimages/numcols
That should be numimages // numcols
> if numrows * numcols != numimages:
> numrows += 1
>
> frame = Tkinter.Frame(root)
> for col in range(numcols):
> frame.columnconfigure(col, pad=2)
>
> for row in range(numrows):
> frame.rowconfigure(row, pad=2)
>
> print "There are", numimages, "images" # 256 in fact...
> for imagenum, (row, col) in enumerate([(row,col) for row in range(numrows) for col in range(numcols)]):
> b = Tkinter.Label(frame, compound = Tkinter.TOP)
> b['text'] = os.path.basename(image_list[imagenum])
> b['image'] = ImageTk.PhotoImage(Image.open(image_list[imagenum]) )
ImageTk? or Tkinter?
> b.grid(row=row, column = col)
>
> frame.pack()
>
> root.mainloop()
>
--
Terry Jan Reedy
More information about the Python-list
mailing list