В Tkinter, как я могу исправить эту петлю / функцию, чтобы каждая кнопка меняла значение на значение кнопки? - PullRequest
1 голос
/ 17 ноября 2011

В 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()

Спасибо

1 Ответ

2 голосов
/ 17 ноября 2011

Измените лямбду, чтобы привязать значение в момент создания анонимной функции.

lambda a=a: inputBoardSize(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...