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

Tkinter中Entry值与同内容字符串比较为False的原因

问题成因

直接将Entry控件实例与字符串做相等判断是逻辑错误:ent_pro_val4是Entry类的实例化对象,不是输入框内的文本内容,对象和字符串属于完全不同的数据类型,无论输入什么内容,两者比较的结果永远为False。
Entry控件不会自动把输入内容赋值给控件变量本身,要获取输入的实际文本,必须调用控件内置的get()方法取值后再做比较。

错误点定位

原判断逻辑:

tru = (ent_pro_val4=='TEST123')

此处比较的两个值分别是Entry控件对象和字符串常量'TEST123',类型不匹配,不可能得到True的结果。

修正后可运行代码
from tkinter import *
import tkinter.ttk as ttk

root = Tk()
root.title("TEST ")

lab_pro_val4=Label(root, text="Anything input", width=30, height=1 )
lab_pro_val4.pack()

ent_pro_val4 = Entry(root) 
ent_pro_val4.pack()


def btncmd4_add():
    # 调用get()方法获取输入框内的实际文本,再做相等判断
    input_text = ent_pro_val4.get()
    tru = (input_text == 'TEST123')
    print(tru)
    

btn4_ppid = Button(root, text="Check ", command=btncmd4_add, bg="white")
btn4_ppid.pack()

root.mainloop()
额外注意
  • Tkinter所有输入类控件都不能直接用控件对象代替输入内容做判断:
    • 单行输入框Entry:通过控件对象.get()获取全量输入文本
    • 多行文本框Text:通过控件对象.get("1.0", END)获取从第一行首位到输入末尾的全部内容
  • 如果需要做实时输入校验,可以搭配StringVar做值绑定,通过绑定变量的get()方法也能拿到实时输入内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:06:51