如何在Tkinter密码输入框中保留默认提示文本且输入时隐藏内容?
解决Tkinter密码输入框默认文本显示问题
直接上可行方案:默认状态下不设置show参数,显示"password"提示文本,通过绑定焦点事件切换成密码隐藏模式,代码如下:
import tkinter as tk def on_focus_in(event): # 输入框获得焦点时,若内容是默认提示,则清空并设置密码隐藏 if event.widget.get() == "password": event.widget.delete(0, tk.END) event.widget.config(show="*") root = tk.Tk() # 创建输入框,初始不设置show,插入默认提示文本 password_entry = tk.Entry(root) password_entry.insert(0, "password") password_entry.pack(padx=10, pady=10) # 绑定焦点进入事件 password_entry.bind("<FocusIn>", on_focus_in) root.mainloop()
额外优化(可选):如果想在用户未输入内容就离开输入框时恢复默认提示,可以添加焦点离开事件处理:
def on_focus_out(event): # 失去焦点且内容为空时,恢复默认提示文本与正常显示模式 if not event.widget.get(): event.widget.config(show="") event.widget.insert(0, "password") # 绑定焦点离开事件 password_entry.bind("<FocusOut>", on_focus_out)
核心逻辑就是利用焦点事件动态切换show参数和输入框内容,避开了一开始设置show="*"导致默认文本变成星号的问题。
内容的提问来源于stack exchange,提问作者steveajones
相关产品推荐
相关产品推荐

