请之家帮忙。当使用tkinter时,我发现当def在按钮下方时,很难调用按钮中定义的函数。我使用的是python 3.6.9。例子
import tkinter
window = tkinter.Tk
button = tkinter.Button(window, text="hello",command=newpage()).grid(column=0, row=0)
def newpage():
new = tkinter.toplevel()
除了我使用lambda之外,按钮不工作,而且如果我在按钮下定义新的东西,lambda也不工作。新的定义会阻止lambda看到其他def。 NB: 我使用lambda是这样的。lambda:newpage()
NB: 我使用的是python 3.6.9另外请问我怎么能让许多tkinter按钮使用同一个命令(如def)
该 newpage
函数在使用前应该先定义,如果没有其他原因,这也是一种良好的编程实践。
变量 window
被设置为 tkinter.Tk
返回的对象,而不是 tkinter.Tk()
.
按钮是立即调用函数,因为command期望运行一个函数,并认为你想让它运行newpage返回的东西,而不是去掉了 ()
command=newpage
.
Toplevel是大写的。tkinter.Toplevel()
.
一个功能可以被任何按钮使用,只需指定命令即可使用该功能。
import tkinter
def newpage():
new = tkinter.Toplevel()
window = tkinter.Tk()
button1 = tkinter.Button(window,
text="hello1",
command=newpage).grid(column=0, row=0)
button2 = tkinter.Button(window,
text="hello2",
command=newpage).grid(column=0, row=1)
button3 = tkinter.Button(window,
text="hello3",
command=newpage).grid(column=0, row=2)