如何在Tkinter注册界面添加密码长度与无空格验证?
密码验证规则实现方案
直接在你的注册按钮点击函数中添加密码长度和空格检查逻辑,修改后的完整代码如下:
def sign_up_clicked_r(): global inv_user_r global inv_pass_r global alr_user_r user_r = user_entry_r.get() password_r = password_entry_r.get() if not user_r and not password_r: inv_user_r = canvas.create_text( 252.0, 259.0, text="Username cannot be empty!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") inv_pass_r = canvas.create_text( 252.0, 340.0, text="Password cannot be empty!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") canvas.after(1750, clear_inv_r) return if user_r and not password_r: inv_pass_r = canvas.create_text( 252.0, 340.0, text="Password cannot be empty!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") canvas.after(1750, clear_invp_r) return if not user_r and password_r: inv_user_r = canvas.create_text( 252.0, 259.0, text="Username cannot be empty!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") canvas.after(1750, clear_invu_r) return # 新增密码验证逻辑 password_valid = True # 检查密码长度是否至少8位 if len(password_r) < 8: inv_pass_r = canvas.create_text( 252.0, 340.0, text="Password must be at least 8 characters!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") canvas.after(1750, clear_invp_r) password_valid = False # 检查密码是否包含空格 if ' ' in password_r: # 避免重叠提示,仅在之前无错误时显示空格错误 if password_valid: inv_pass_r = canvas.create_text( 252.0, 340.0, text="Password cannot contain spaces!", fill="#9f0000", font=("Poppins Regular", int(11.0 * -1.1)), anchor="nw") canvas.after(1750, clear_invp_r) password_valid = False # 验证不通过则终止后续流程 if not password_valid: return # 此处可添加注册成功后的逻辑(如保存用户信息等)
关键说明:
- 用
len(password_r) < 8判断密码长度是否不足8位 - 用
' ' in password_r检查密码中是否包含空格 - 通过
password_valid变量控制提示显示,避免同一位置出现重叠错误信息 - 验证失败时直接返回,阻止后续注册流程执行
内容的提问来源于stack exchange,提问作者user20733481
相关产品推荐
相关产品推荐

