【发布时间】:2020-01-14 07:48:50
【问题描述】:
import Tkinter as ass
root = ass.Tk()
frame = ass.Frame(root)
button1 = ass.Button(frame, command=button1(), text='Kushagra', width=50, height=40)
button1.pack(side=ass.LEFT)
root.mainloop()
button1() 是我创建的一个我认为不相关的函数。运行此程序后,我得到的只是一个空白窗口。我该如何解决这个问题?
【问题讨论】:
-
@martineau: def button1(): global a a += 1 return a
-
我对它的重要性有误,因此删除了我之前的评论——尽管我关于在创建
Button小部件时不调用它的观点仍然有效。 @Deepak Raj 的回答是为什么什么都没有显示(尽管他根本没有指定command选项)。 -
@martineau 抱歉,如果我反复提问很烦人,但在调用 button1() 时我做错了什么?你能纠正我吗?
-
一般来说,当您想在创建 tkinter 小部件时指定回调函数时,只需使用它的名称,不带
()前缀 - 在这种情况下为command=button1。但请注意,在这种情况下还有另一个潜在问题,因为当您将小部件分配给button1时,它会覆盖其原始值,之后该名称将不再引用您定义的原始函数。另一方面,如果从那时起您从不显式调用函数可能并不重要。 -
P.S.为了避免混淆和潜在的问题,我建议你给函数一个唯一的名字……比如
button1_callback。
标签: python tkinter python-2.x