我创建了一个列表和一个循环,将新按钮添加到该列表中。唯一的问题是按钮似乎不记得它们的适当命令,并且总是必须回调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
。