我正在开发一个显示一系列壁纸图像并允许用户选择一个作为应用程序背景的应用程序。
应用程序读取目录并显示目录中的所有 .JPG 图像。因此,它需要能够允许用户从不确定长度的选项列表中单击任何选项。
问题是:单击列表中的任何壁纸只会传入选项以更改为列表中的最后一个壁纸(即循环变量迭代,我希望调用的方法来捕获循环变量的值在我分配标签的迭代中)。
以下是相关的代码块:
for i in range(0,(howManyWalls-1)):
#Update position
if i % 3 == 0:
startX=x0+10
startY=startY+160
else:
startX=startX+160
self.options.append(Image.open("../includes/wallpaper/wall"+str(i+1)+".jpg"))
self.options[i].thumbnail((150,150),Image.ANTIALIAS)
self.optionThumbs.append(ImageTk.PhotoImage(self.options[i]))
self.optionThumbsDisp.append(canvas.create_image(startX,startY,anchor=NW, image=self.optionThumbs[i]))
canvas.tag_bind(self.optionThumbsDisp[i],"<Button-1>", lambda x: self.changeWallpaper(canvas,w,h,(i+1)))