在Tkinter中,如何更正此循环/函数,以便每个按钮将值更改为按钮的值?

时间:2011-11-17 18:57:43

标签: python lambda tkinter

在Tkinter中,如何更正此循环/函数,以便每个按钮将值更改为按钮的值?

这是我的代码的简化版本,此时每个按钮将size的值更改为15而不是按钮上的数字。我想知道是否有没有修复这个循环而没有打印每个单独的按钮和值而没有循环?

from Tkinter import *

size = 7

def AI():
    AIBoard = Tk()        
    AIBoard.title("Board Select")
    BoardSize = Label(AIBoard, text = "Please pick a board size: ", font = ('Helvetica',20))
    BoardSize.pack(side = 'top')

    for a in range(5,16,1):
        sizeBut = Button(AIBoard, text = a, width = 5, command = lambda: inputBoardSize(a))
        sizeBut.pack(side = 'left')

    AIBoard.mainloop()

def inputBoardSize(x):
    size = x
    print size

AI()

感谢名单

1 个答案:

答案 0 :(得分:2)

更改lambda以在创建匿名函数时绑定值。

lambda a=a: inputBoardSize(a)