tkinter中的按钮在按下之前调用一个函数

时间:2016-05-30 19:27:29

标签: python python-2.7 tkinter tk

我在python 2.7中用tkinter编程。使用这种语法几十次,但由于某种原因,在我声明按钮后它在这个特定的情况下它调用函数而没有我按下它。 这是代码:

def uninstall_win():
    verify = Tk()
    verify.title("Uninstall")
    recheck = make_entry(verify, "Please Re-enter password:", 14, show='*')
    b = Button(verify, borderwidth=4, text="Uninstall", pady=8, command=uninstall(recheck.get()))
    b.pack()
    verify.mainloop()

def make_entry(parent, caption, width=None, **options):
    Label(parent, text=caption).pack(side=TOP)
    entry = Entry(parent, **options)
    if width:
        entry.config(width=width)
    entry.pack(side=TOP, padx=10, fill=BOTH)
    return entry

任何见解都将受到赞赏

2 个答案:

答案 0 :(得分:1)

在将带有参数的函数放在Button中时,应该使用lambda。

b = Button(verify, borderwidth=4, text="Uninstall", pady=8, command=lambda: uninstall(recheck.get()))

答案 1 :(得分:0)

因为你正在调用函数而不是将函数作为可调用函数传递。

lambda: uninstall(recheck.get())

传递uninstall(recheck.get())将命令设置为此函数返回的内容