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

Tkinter GUI开发问题:用户姓名输入框内容存储故障咨询

关于Tkinter姓名输入框问题的解决方案

我明白你查了不少同类问题但还是没搞懂,别着急,咱们来一步步梳理你的GUI输入框问题~

首先先把你提供的代码片段整理出来,方便分析:

tk.Label(self, text='First Name: ').pack(side=TOP)
EntryFieldFN = Entry(self)
EntryFieldFN.pack(pady=2, padx=2)
tk.Label(self, text='Surname: ').pack()
EntryFieldSN = Entry(...)

从这段代码来看,大概率是这几个地方出了问题,我给你整理了修正方案和原因:

  • 导入引用问题:如果你的代码里是通过import tkinter as tk导入的库,那直接写Entry会报错,因为这个类属于tk模块,得写成tk.Entry才行。
  • 参数不完整:EntryFieldSN = Entry(...)这里的参数没写完,应该和第一个输入框一样,传入self作为父组件,也就是tk.Entry(self)。
  • 局部变量无法复用:如果后续你想获取输入框里的内容,现在定义的EntryFieldFN和EntryFieldSN是局部变量,在类的其他方法里根本访问不到。最好把它们改成实例属性,加上self.前缀,这样后续调用.get()方法拿值就方便多了。

给你一个修正后的完整示例代码,你可以参考:

# 假设这段代码在你的GUI类的__init__方法里
import tkinter as tk

class MyGUI(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("Name Input")

        # 名字输入框
        tk.Label(self, text='First Name: ').pack(side=tk.TOP)
        self.EntryFieldFN = tk.Entry(self)
        self.EntryFieldFN.pack(pady=2, padx=2)

        # 姓氏输入框
        tk.Label(self, text='Surname: ').pack()
        self.EntryFieldSN = tk.Entry(self)
        self.EntryFieldSN.pack(pady=2, padx=2)

        # 添加提交按钮,用来获取输入值
        tk.Button(self, text="Submit", command=self.get_names).pack(pady=5)

    def get_names(self):
        # 获取输入框内容
        first_name = self.EntryFieldFN.get()
        surname = self.EntryFieldSN.get()
        # 这里可以换成你自己的处理逻辑,比如保存到变量或者显示在界面上
        print(f"你输入的名字:{first_name},姓氏:{surname}")

if __name__ == "__main__":
    app = MyGUI()
    app.mainloop()

这样修改后,不仅输入框能正常显示,点击提交按钮还能获取到用户输入的姓名内容,后续你可以根据自己的需求调整get_names方法里的逻辑。

内容的提问来源于stack exchange,提问作者user9101713

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:02:19