Python 如何使用Tk按钮?
我是Python的初学者,我正在尝试构建一些GUI来理解。 我想向按钮传递一个需要参数的函数,但当我启动脚本时,它却没有 工作 我正在附加一个python文件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("
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()))
非常感谢你。我已经解决了我的问题