Python 如何使用Tk按钮?

Python 如何使用Tk按钮?,python,button,tkinter,Python,Button,Tkinter,我是Python的初学者,我正在尝试构建一些GUI来理解。 我想向按钮传递一个需要参数的函数,但当我启动脚本时,它却没有 工作 我正在附加一个python文件 from tkinter import * from tkinter import messagebox window = Tk() window.title("Hello World") window.geometry('350x200') def clicked(msg): messagebox.showinfo("

我是Python的初学者,我正在尝试构建一些GUI来理解。 我想向按钮传递一个需要参数的函数,但当我启动脚本时,它却没有 工作 我正在附加一个python文件

from tkinter import *
from tkinter import messagebox



window = Tk()
window.title("Hello World")
window.geometry('350x200')


def clicked(msg):
    messagebox.showinfo("Message",msg)



text = Entry(window,width=100)
text.grid(column = 1, row = 0)

btn = Button(window,text = "Click me",command = clicked(text.get()))
btn.grid(column=5, row=1)
window.mainloop()

您的文件需要以下修复程序:

当您指定命令参数时,它不会等到您单击按钮,它会在tkinter应用程序执行后立即弹出消息框。(这就是我执行代码时的体验)

您必须在此处使用lambda

因此,您可以通过以下方式解决此问题:

btn.bind(“”,lambda事件:clicked('Your Text'))#Button-1代表鼠标左键单击
有关绑定()方法的详细信息:


这是最终代码:

从tkinter导入*
从tkinter导入消息框
window=Tk()
窗口名称(“你好世界”)
窗口几何(“350x200”)
已单击def(消息):
messagebox.showinfo(“消息”,msg)
文本=条目(窗口,宽度=100)
text.grid(列=1,行=0)
btn=按钮(窗口,text=“单击我”)
btn.bind(“”,lambda事件:单击(text.get())
btn.网格(列=5,行=1)
window.mainloop()

解释代码时将执行该命令,以避免使用
lambda
向函数传递参数

command = lambda : clicked(text.get()))
或者,您可以使用
partial
,它将返回一个可调用的对象,该对象在被调用时的行为类似于函数

from functools import partial
...
command = partial(clicked, text.get()))

非常感谢你。我已经解决了我的问题