如何解决如何在Python Tkinter中制作可变数量的按钮?
我想用tkinter在Python 3.8.2中编程一个文件浏览器。除了按钮,其他所有东西都可以正常工作,因为它们只是不执行应有的操作。
这里是一个例子:
import tkinter as tk
buttonlist = ['button1','button2','button3']
Buttons = []
root = tk.Tk()
for h,button in enumerate(buttonlist):
Buttons.append(tk.Button(root,text=button,command = lambda : print(button)))
Buttons[h].pack()
root.mainloop()
但是我按下哪个按钮都没有关系,它始终会打印button3
。
我该怎么解决?
解决方法
lambda将使用for循环中的最后一个值。您可以通过将lambda作为默认值提供来强制lambda使用按钮标准处的button值:
lambda b=button: print(b)
中的更多说明
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。