2011-11-17 4 views
1

Tkinterではどのようにしてこのループ/関数を修正して、各ボタンが値をボタンの値に変更することができますか?Tkinterではどのようにしてこのループ/関数を修正して、各ボタンが値をボタンの値に変更することができますか?

これは私のコードの簡略化されたバージョンです。各ボタンはボタンの数値ではなく、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() 

ありがとう

答えて

2

変更匿名関数の作成時に値をバインドするためにあなたのラムダを。

lambda a=a: inputBoardSize(a) 
+0

ありがとう!正確に私が必要なもの:) – Chris

関連する問題