【发布时间】:2021-02-06 23:49:26
【问题描述】:
我创建了一个列表和一个循环,用于向该列表添加新按钮。唯一的问题是按钮似乎不记得它们的相应命令,并且总是必须在循环中回调变量x。
Buttons = []
for x in range(9):
Buttons.append(Button(frame2, text = str(x+1), command = lambda : num_pressed(x+1), width = 10, height = 5))
函数num_pressed 使用变量x 的方式与文本相同,不同之处在于文本在定义后保持不变,但命令不会。
因此,一旦创建了所有按钮,就调用x = 8 的命令,因为这是循环结束的地方。所以最后他们都调用命令num_pressed(9)
如何让命令记住它应该与文本相同的值?也许为每个按钮分配某种值,然后根据存储在按钮本身中的值分配命令?
旁注:我还没有找到方法,但应该可以使用方法.cget('text'),因为按钮的文本恰好与num_pressed 中使用的变量具有相同的值。
【问题讨论】:
标签: python tkinter tkinter-button