如何在Python Tkinter中实现密码显示隐藏的查看密码功能
两种控件都可以实现该功能,优先推荐用复选框(Checkbutton),符合大部分桌面软件的「显示密码」交互习惯,用户学习成本更低。
首先你现有代码有个小问题:pack() 方法返回值为None,你直接把 Entry(root, show='*').pack() 赋值给变量的话,后续无法调用Entry控件的相关方法,需要拆分写:先创建Entry实例赋值给变量,再单独调用pack()方法。
方案1:复选框实现(点选切换显示/隐藏)
完整可运行代码如下:
from tkinter import * root = Tk() root.title("密码输入示例") # 先创建Entry控件再调用pack,保证变量能拿到控件实例 getPassword = Entry(root, show='*') getPassword.pack(padx=20, pady=10) # 切换密码显示状态的函数 def toggle_password(): if show_pwd.get(): # 复选框选中时,show参数设为空,显示明文 getPassword.config(show="") else: # 未选中时,show参数设为*,隐藏密码 getPassword.config(show="*") # 定义布尔变量存储复选框选中状态 show_pwd = BooleanVar() # 创建复选框 check_btn = Checkbutton(root, text="显示密码", variable=show_pwd, command=toggle_password) check_btn.pack(pady=5) root.mainloop()
方案2:按钮实现(按住显示、松开隐藏)
如果是需要临时查看密码的场景,可以用Button控件,绑定鼠标按下和松开事件实现:
from tkinter import * root = Tk() root.title("密码输入示例") getPassword = Entry(root, show='*') getPassword.pack(padx=20, pady=10) # 鼠标按下时显示明文 def show_pwd(event): getPassword.config(show="") # 鼠标松开时隐藏密码 def hide_pwd(event): getPassword.config(show="*") # 创建按钮,绑定事件 toggle_btn = Button(root, text="按住查看密码") toggle_btn.bind("<ButtonPress-1>", show_pwd) toggle_btn.bind("<ButtonRelease-1>", hide_pwd) toggle_btn.pack(pady=5) root.mainloop()
两种方案按需选择即可,常规场景下方案1的使用频率更高。
内容的提问来源于stack exchange,提问作者yuya
相关产品推荐
相关产品推荐

