Python Tkinter中如何保留标签文本同时显示更新的字符数?
解决Tkinter标签保留原有文本并更新字符数的问题
你的问题出在更新标签文本时直接替换了原有内容,只要在更新时把固定提示文本和字符数拼接在一起,就能保留原有提示文字同时显示最新的字符数。
修改核心是my_upd函数,把原来直接赋值字符数的逻辑改成固定文本 + 字符数的组合,同时在程序初始化时主动调用一次函数,让标签一开始就显示正确的初始状态:
import tkinter as tk my_w = tk.Tk() my_w.geometry("400x150") # 窗口尺寸:宽x高 my_w.title("plus2net.com") # 窗口标题 Generator = tk.Frame(my_w) Generator.pack(padx=10, pady=10, fill='x', expand=True) e1_str = tk.StringVar() # 声明StringVar变量 e1 = tk.Entry(Generator, textvariable=e1_str, bg='yellow', font=28) # 输入框 e1.pack(padx=0, fill='x', expand=True) l1 = tk.Label(Generator, text='No of Chars here', font=28) # 标签 l1.pack(padx=0, fill='x', expand=True) def my_upd(*args): # 拼接固定文本和字符数,保留原有提示 char_count = len(e1_str.get()) l1.config(text=f'No of Chars here: {char_count}') e1_str.trace('w', my_upd) # 变量变化时触发更新 my_upd() # 初始化时主动调用一次,显示初始字符数 my_w.mainloop()
关键修改说明:
- 在
my_upd函数中,使用f-string拼接固定文本No of Chars here:和计算出的字符数,避免覆盖原有提示内容 - 程序启动后主动调用
my_upd(),让标签一开始就显示No of Chars here: 0,而不是等到输入内容才触发更新
内容的提问来源于stack exchange,提问作者thangaraj1980
相关产品推荐
相关产品推荐

