Button 如何在一个命令中使用三个不同的tkinter按钮

Button 如何在一个命令中使用三个不同的tkinter按钮,button,tkinter,lambda,command,python-3.6,Button,Tkinter,Lambda,Command,Python 3.6,请帮忙。使用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,而且

请帮忙。使用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。 注意:我像这样使用lambda
lambda:newpage()
注意:我使用python 3.6.9
另外,我如何制作多个tkinter按钮以使用相同的命令(如在def中)

在使用之前,应真正定义
newpage
函数,如果没有其他原因,这是一种良好的编程实践

变量
窗口
被设置为
tkinter.Tk
,而不是
tkinter.Tk()
返回的对象

该按钮正在立即调用该函数,因为command希望某个函数运行,并且认为您希望它运行newpage返回的某些内容,因此请删除
()
命令=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)

我很想把它作为一个复制品关闭。你能扩展你的问题来说明你的问题有什么不同吗?@Bryan请不要关闭这个问题。Stackflow一直是我应对大多数挑战的方法,我已经搜索了很多次,但从之前的任何问题中都找不到解决方案。请帮我解决这个问题。我想有两个按钮使用相同的def命令,但它在我的tkinter上不起作用。Lambda也不工作了。请尽你所能帮助我。请表明你已经尝试过其他问题的建议。正如另一个问题所示,
命令
需要作为
newpage
,而不是
newpage()
。好的。非常感谢。现在也检查链接。非常感谢。那么,你是说在你点击链接之前你让我不要关闭?你为什么不先查看链接?对不起,我误解了你的说法。我想你说过你应该在使用toplevel之前创建它。我将删除我的评论。函数在使用前必须先定义,这是正确的。