如何使用for循环为我的按钮提供功能?

时间:2017-10-03 20:20:35

标签: python for-loop button tkinter calculator

所以我想使用for循环为我的按钮在Tkinter中提供一个功能。当我这样做的时候,我得到一个错误按摩,那些按钮没有定义。我尝试了几件事,但我还是没有工作。如果你能帮助我,我会很高兴的。顺便说一下,它是一个计算器。

这就是循环的样子:

for s in range(0, 10):
    def add_(s):
         entry_box.insert(1000, str(number))

这就是我按下按钮的方式:

button_zero = Button(main_window, text='0', padx=30, pady=25, command=add_0)
button_zero.place(x=67,y=430)

2 个答案:

答案 0 :(得分:1)

如果你有10个按钮(0-9)都将数字插入entry_box,我会建立一个功能工厂。

def add_(s):
    def wrapped():
        entry_box.insert(1000, s)
    return wrapped

当您致电add_(2)时,您会获得一个函数,该函数在调用时会将2添加到输入框中。

add_2 = add_("2")
add_2()  # adds 2 to the entry box, returns None

然后,您可以遍历按钮并为每个按钮分配命令。

for i, button in enumerate([button_zero, button_one, button_two, ...]):
    button.configure(command=add_(str(i)))

答案 1 :(得分:0)

根据您提供的信息,按钮中的命令参数不等于任何已定义的函数。也许只是一个错字:

for s in range(0,10):
    def add_0(s):
        entry_box.insert(1000,str(number))