【发布时间】:2012-04-26 05:56:14
【问题描述】:
Windows 7x64 Python2.7
我希望将Lexical closures in Python 线程解决方案应用于我的代码。补充阅读Closures in a for loop and lexical environment
我浏览了一个图像列表、缩略图对并显示缩略图,单击标签后,它应该会显示一个新的 TopLevel,其中包含全尺寸图像。
实际发生的是,它只显示了 ImagePairs 的最后一张图像。环顾四周,我发现了我在上面发布的那个帖子,但我不确定如何将它应用于我的情况。
row, col = 0, 0
#create a frame for the row
rowFrame = Frame(master)
for image, thumb in ImagePairs:
curLbl = Label(rowFrame, image=thumb)
curLbl.grid(row=0, column=col, sticky='news')
curLbl.bind('<Button-1>', lambda e:self.popImage(image)) #or curLbl.image
col += 1
if col >= 3:
rowFrame.grid(row=row)
#create a new frame, for the next row
rowFrame = Frame(master)
col = 0
row += 1
我想制作一个类似
的函数def func(img=img):
return img
并将其插入到 grid() 和 bind() 之间的空间中,但随后我得到了缺少图像的错误。如何修改我的代码以适应它?
【问题讨论】:
标签: python lambda callback scope tkinter