心妍 发表于 2022-11-19 18:15:07

编写具有验证功能的输入框界面和自我思考

本帖最后由 paypojie 于 2022-11-19 18:24 编辑

                                                                实现校验功能的输入框-Tkinter


思路来源GIF图的网络地址 http://c.biancheng.net/uploads/allimg/220105/110G56144-3.gif

https://s1.ax1x.com/2022/11/19/zKM9Yj.png


自己做的输入框界面






自己实现的代码
import tkinter as tk
from tkinter import messagebox
win = tk.Tk()

win.geometry('250x200+300+200')
win.resizable(0,0)
# 下面一行代码注释掉 不知道怎么解释 反正加注释之后 其他电脑运行不会报错 我猜测是python在其它电脑执行这行代码时 因为找不到图标文件 所以会报错
# win.iconbitmap(r"C:\Users\33943\Downloads\favicon.ico")
win.title('C语言中文网')

# 新建文本标签
tk.Label(win,text='账号:').grid(row=0,column=0)
tk.Label(win,text='密码:').grid(row=1,column=0)

# 对输入框内的内容进行验证 (校验输入框中的文本)
# 自定义定义验证函数 验证函数的返回值只能为True或者False
# 要求用户输入的内容只能是C语言中文网

def check():
    # 获取输入框的内容
    if e1.get() == 'C语言中文网':
      messagebox.showinfo('输入正确')
      return True
    else:                                                                              
      messagebox.showwarning('输入不正确')
      # 清除输入框的内容 e1.delete(0,tk.END)的效果和e1.delete(0,'end')一样
      e1.delete(0,'end')
      # e1.delete(0,tk.END)
      return False

# 不能用这种方式写 不明白为什么用这种方式写会报错 要创建好之后才能进行布局吗?
# e1 = tk.Entry(win,validate='focusout',validatecommand=check).grid(row=0,column=1)
# e2 = tk.Entry(win).grid(row=1,column=1)

# 上面的两行代码是错误的写法 下面的四行代码是正确的写法 不明白为什么
e1 = tk.Entry(win,validate='focusout',validatecommand=check)
e2 = tk.Entry(win)
e1.grid(row=0,column=1)
e2.grid(row=1,column=1)

# 为啥在创建具有校验功能的输入框时 在创建之后需要赋值给变量 然后在进行放置和布局 为啥就不能直接进行创建加布局
# 思考: 为啥需要通过变量间接进行放置在主窗口和布局 为啥不能一步到位? 创建输入框之后直接进行放置和布局

win.mainloop()

# 注意事项 在创建能够进行内容检查的Entry控件时(输入框)需要在创建好之后赋值给变量 然后对变量使用grid()方法
# 具备验证内容的输入框 需要validate参数(指定验证方式 参数值是字符串参数)以及validatecommand(用户自定义的验证函数)至于invalidcommand参数可有可无
编写具有验证功能的输入框界面和自我思考
https://www.52pojie.cn/thread-1715271-1-1.html
(出处: 吾爱破解论坛)










乐活 发表于 2022-11-21 09:20:53

这个不错啊,多谢

心妍 发表于 2022-11-21 12:34:14

乐活 发表于 2022-11-21 09:20
这个不错啊,多谢

我觉得我这个写的不是很好
页: [1]
查看完整版本: 编写具有验证功能的输入框界面和自我思考