Tkinter的mainloop()自动调用按钮功能

时间:2011-12-30 22:19:00

标签: python tkinter

我对Tkinter很新,但是开始尝试在我的脚本中添加更复杂的GUI。所以这必须是非常基本的,但我无法弄清楚出了什么问题。

我想要的是非常简单,一堆数据输入选项,底部是退出和提交按钮。似乎mainloop()或其他东西在没有任何用户输入的情况下继续运行按钮的命令。因此,由于退出按钮,applet在它出现之前就被销毁了。如果我把按钮放在mainloop()之外,没有问题,但当然没有意义,按钮也没有出现。

button_exit = Tkinter.Button(root, text = 'Exit', command = root.destroy())
button_exit.grid(row=3, column=0, pady=10, sticky='E')
button_query = Tkinter.Button(root, text = 'Query', command = intQuery())
button_query.grid(row=3, column=1, padx=10, sticky='E')

root.mainloop()

这基本上是代码的问题区域。其余的只是数据输入字段,大部分脚本甚至尚未编写。

提前致谢。

1 个答案:

答案 0 :(得分:3)

更改

command = root.destroy()

command = root.destroy

原因是:括号调用方法,并且在传递给方法之前计算方法参数。这就是你的程序过早退出的原因。

没有括号,您将该方法引用为对象,可以将其传递给Tkinter.Button,存储,并在按下按钮后调用。

然后对command = intQuery()执行相同操作。