如何用一条命令使用三个不同的tkinter按钮?

问题描述 投票:0回答:1

请之家帮忙。当使用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)

button tkinter lambda command python-3.6
1个回答
1
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.