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

Python Tkinter Entry输入框点击提交无返回结果问题求助

问题排查

  • 问题1:eq变量的取值时机错误
    你当前是在窗口刚初始化、用户还没进行任何输入的时候就执行了eq = textbox1.get() + textbox2.get() + textbox3.get(),此时三个输入框都是空值,且这个eq不会随着用户后续输入自动更新,点击按钮时调用的还是初始化时的静态空值。
  • 问题2:输入框get()返回的是字符串类型,直接相加是字符串拼接而非数值求和
  • 问题3:提交按钮对应的submit函数没有实时读取输入框的最新值,直接用了初始化阶段的静态eq变量

修复后完整代码

from tkinter import *
import os
os.system("clear") 

root = Tk()
root.title('Test')
root.geometry('1000x600')

def submit():
    # 点击按钮时实时读取三个输入框的最新值,转为int类型后求和
    try:
        num1 = int(textbox1.get())
        num2 = int(textbox2.get())
        num3 = int(textbox3.get())
        total = num1 + num2 + num3
        submit_text = Label(root, text=f"求和结果:{total}")
        submit_text.pack()
    except ValueError:
        # 异常处理,避免用户输入非数字时报错崩溃
        err_text = Label(root, text="请输入合法的数字!", fg="red")
        err_text.pack()

# 调整标签和输入框顺序,符合用户输入直觉
label1 = Label(root, text='输入第一个数字')
label1.pack()
textbox1 = Entry(root, width=30)
textbox1.pack()

label2 = Label(root, text='输入第二个数字')
label2.pack()
textbox2 = Entry(root, width=30)
textbox2.pack()

label3 = Label(root, text='输入第三个数字')
label3.pack()
textbox3 = Entry(root, width=30)
textbox3.pack()

button = Button(root, text="submit", command=submit)
button.pack()

root.mainloop()

核心修改说明

  • 把取值和求和逻辑移到submit函数内部,确保每次点击按钮都读取用户最新的输入内容
  • 对get()返回的字符串做int类型转换,实现数值求和
  • 新增异常捕获逻辑,当用户输入非数字内容时给出友好提示
  • 调整输入框和对应标签的顺序,操作逻辑更符合用户使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:06:03