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

Tkinter中entry.get()函数无法正常工作的问题求助

问题原因

你代码里的entry.get()是在Entry组件刚创建、用户还没输入任何内容时就执行了,此时获取到的是空字符串,所以终端打印不出输入内容。而且window.mainloop()才是启动GUI事件循环的代码,在这之前的代码都属于初始化阶段,不会响应用户的输入操作。另外你代码里的Label和Button参数行末尾多了多余的反引号,这会导致语法错误,需要先删掉。

解决方法

把获取输入内容的逻辑放到按钮点击的回调函数里,只有当用户点击按钮时,才去读取Entry里的内容并打印。修改后的代码如下:

import tkinter as tk

window = tk.Tk()

# Label
label = tk.Label(
    text="Hello, Tkinter",
    fg="white", # 设置文字颜色为白色
    bg="black", # 设置背景颜色为黑色
    width=11,
    height=10
)
label.pack()

# 定义回调函数,用来获取并打印输入内容
def get_and_print_name():
    name = entry.get()
    print(name)

# Button,绑定回调函数到command参数
button = tk.Button(
    text="Click me!",
    width=25,
    height=5,
    bg="blue",
    fg="yellow",
    command=get_and_print_name  # 点击按钮时执行这个函数
)
button.pack()

# Entry相关组件
name_label = tk.Label(text="Name")
entry = tk.Entry()

name_label.pack()
entry.pack()

window.mainloop()
补充说明
  • 终端里直接输入entry.get()无效的原因是:当window.mainloop()运行时,Python主线程被GUI事件循环占用,无法处理你在终端输入的命令;如果退出了mainloop,entry对象已经被销毁,自然也调用不了。
  • 所有需要响应用户操作的逻辑,都要通过Tkinter的事件绑定或者组件的command参数来触发,不能在初始化阶段直接调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:40:20