-1

这是我的代码:

buttons=[]
for i in range(100):
    buttons.append(Button(parent,text="0",command=lambda:[change(i)])
def change(i):
    buttons[i]["text"]="1"

但最后,我将转到 99,无论我单击哪个按钮,我都只能更改最后一个按钮。所以我想知道有什么好的方法吗?

4

1 回答 1

0

解决方案很简单只需通过以下命令更改命令

command = lambda i=i:change(i)

这将为您完成工作。您的解决方案没有按预期工作,因为 python 传递了 i 的最后一个值,因此要解决这个问题上面的命令是解决方案。这里 lambda 在每次执行循环时同时给出参数(即 i),然后将 i 传递给 change 函数,这就是它起作用的原因

有关更多 tkinter 相关信息,请务必访问:https ://mycodenotein.netlify.app/src/tkinter.html

于 2020-12-13T16:20:35.437 回答