如何更改tkinter按钮';在python中单击时单击文本
这是我的密码:如何更改tkinter按钮';在python中单击时单击文本,python,tkinter,tkinter-button,Python,Tkinter,Tkinter Button,这是我的密码: buttons=[] for i in range(100): buttons.append(Button(parent,text="0",command=lambda:[change(i)]) def change(i): buttons[i]["text"]="1" 但最后,我将转到99,我只能改变最后一个按钮,无论我点击哪个按钮。所以我想知道有什么好方法可以做到这一点吗?解决方案非常简单 只需通过
buttons=[]
for i in range(100):
buttons.append(Button(parent,text="0",command=lambda:[change(i)])
def change(i):
buttons[i]["text"]="1"
但最后,我将转到99,我只能改变最后一个按钮,无论我点击哪个按钮。所以我想知道有什么好方法可以做到这一点吗?解决方案非常简单
只需通过下面的命令更改命令
command = lambda i=i:change(i)
这将为你做这项工作。
您的解决方案未按预期工作,因为
python传递i的最后一个值
从而解决这个问题
上面的命令就是解决方案。
这里lambda是在每次循环执行的同时给出的参数(即i),然后是i
传递给change函数,这就是它工作的原因
欲了解更多tkinter相关信息
请务必访问:这似乎是因为。你可以试试
command=lambda i=i:[change(i)]
来代替吗?谢谢!