You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter按钮函数中传递Entry组件值至onConfirm()函数

如何在Tkinter按钮点击函数中,将Entry组件的输入值传递给自定义的onConfirm()函数?

其实这个需求实现起来很直观,核心是用lambda表达式作为按钮的回调桥梁,让你能在点击按钮时动态获取Entry的输入内容,再传递给你的自定义函数。下面是完整的示例实现:

关键思路拆解

  • 先创建好Entry组件,确保它的作用域能被按钮的回调访问到(示例中我们在类的__init__方法里创建了firstNameText这个Entry实例)
  • 给Button的command参数绑定一个lambda表达式:lambda: self.onConfirm(firstNameText.get())。lambda在这里就像一个临时的小函数,点击按钮时会先调用firstNameText.get()拿到输入框里的内容,再把这个内容作为参数传给onConfirm
  • 最后实现onConfirm函数,接收传入的参数并做你需要的处理(示例里用messagebox弹窗展示输入的内容)

完整示例代码

from tkinter import Tk, ttk, Frame, Button, Label, Entry, Text, Checkbutton, \
Scale, Listbox, Menu, BOTH, RIGHT, RAISED, N, E, S, W, \
HORIZONTAL, END, FALSE, IntVar, StringVar, messagebox as box

class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent, background="skyblue")
        self.parent = parent
        self.parent.title("Simple Window")
        self.style = ttk.Style()
        self.style.theme_use("default")
        self.centreWindow()
        self.pack(fill=BOTH, expand=1)

        # 创建标签和输入框
        firstNameLabel = Label(self, text="First Name")
        firstNameLabel.grid(row=0, column=0, padx=(100,10), pady=(100,10))
        firstNameText = Entry(self, width=20)
        firstNameText.grid(row=0, column=1, pady=(100,10))

        # 绑定按钮点击事件,用lambda传递输入值
        okBtn = Button(self, text="OK", width=10, command=lambda: self.onConfirm(firstNameText.get()))
        okBtn.grid(row=0, column=2,padx = 5, pady=(100,10))

    def centreWindow(self):
        w = 500
        h = 300
        sw = self.parent.winfo_screenwidth()
        sh = self.parent.winfo_screenheight()
        x = (sw - w)/2
        y = (sh - h)/2
        self.parent.geometry('%dx%d+%d+%d' % (w, h, x, y))

    def onConfirm(self,s):
        # 接收传递过来的输入值并展示
        box.showinfo("Information", s)

def main():
    root = Tk()
    root.resizable(width=FALSE, height=FALSE)
    app = Example(root)
    root.mainloop()

if __name__ == '__main__':
    main()

运行这段代码后,你在输入框里输入内容,点击OK按钮,就能看到弹窗显示你输入的名字了。

内容的提问来源于stack exchange,提问作者salesforce-coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:00:43