我有一个for循环,该循环遍历选项列表并创建tkinter按钮。然后,按钮具有从列表中选择选项的命令。当前,由于使用了变量i,每个按钮都选择了最后一个选项。
我知道问题出在lambda:self.pick_pet(pets [i])我相信在for循环完成之后,我正在被评估为最后一个值。
pets = fnmatch.filter(os.listdir('.'), '*.jpg')
buttons = {}
for i in range(len(pets)):
buttons[i] = Button(self.frame, text=pets[i], command=lambda: self.pick_pet(pets[i]))
buttons[i].grid(row=i, column=1, pady=5)
我希望pets [i]在创建按钮时以某种方式采用i的文字值。