2017-10-13 67 views
1

我工作我不能去上班,我写,我认为显示了问题的例子:问题多的Tkinter按钮

from tkinter import * 

listing = [1, 2, 3, 4] 

def PressedButton(listing): 
    print(listing) 

global root 
root = Tk() 
ListButton = [] 
for i in range(0, len(listing)): 
    ListButton.append(Button(root, text= listing[i], command = lambda: 
PressedButton(listing[i]))) 
    ListButton[i].grid(row = i) 

当我运行此,我总是有着数无论我选择了哪个按钮,都会打印4个,但所有按钮的确都有相应的编号。

非常感谢你们提供的帮助。

回答

0

嗯,在你的代码中有很多与糟糕的编程实践有关的东西,当然你必须阅读更多关于lambda表达式,所以现在我所能做的就是为你提供一个解决方案来使你的代码工作。

更改此:

... command = lambda: PressedButton(listing[i]) ... 

... command = lambda i=i: PressedButton(listing[i]) ...