您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python tkinter制作用户登录界面的简单实现

51自学网 2021-10-30 22:46:08
  python
这篇教程python tkinter制作用户登录界面的简单实现写得很实用,希望能帮到您。

本文只是几年前学习的tkinter的时候写的测试程序,十分之简陋,只是学习用,没什么其他用处。

学习一下莫烦Python的tkinter教程,根据教程制作了用户登录注册页。基本功能为检查登录、注册。

运行如下:

​​​​​​

代码如下:

# -*- coding: utf-8 -*-"""Created on Sun Aug  5 10:34:10 2018@author: Administrator"""import tkinter as tkimport tkinter.messageboximport pickle#窗口window=tk.Tk()window.title('欢迎进入学习系统')window.geometry('450x300')#画布放置图片canvas=tk.Canvas(window,height=300,width=500)imagefile=tk.PhotoImage(file='qm.png')image=canvas.create_image(0,0,anchor='nw',image=imagefile)canvas.pack(side='top')#标签 用户名密码tk.Label(window,text='用户名:').place(x=100,y=150)tk.Label(window,text='密码:').place(x=100,y=190)#用户名输入框var_usr_name=tk.StringVar()entry_usr_name=tk.Entry(window,textvariable=var_usr_name)entry_usr_name.place(x=160,y=150)#密码输入框var_usr_pwd=tk.StringVar()entry_usr_pwd=tk.Entry(window,textvariable=var_usr_pwd,show='*')entry_usr_pwd.place(x=160,y=190) #登录函数def usr_log_in():    #输入框获取用户名密码    usr_name=var_usr_name.get()    usr_pwd=var_usr_pwd.get()    #从本地字典获取用户信息,如果没有则新建本地数据库    try:        with open('usr_info.pickle','rb') as usr_file:            usrs_info=pickle.load(usr_file)    except FileNotFoundError:        with open('usr_info.pickle','wb') as usr_file:            usrs_info={'admin':'admin'}            pickle.dump(usrs_info,usr_file)    #判断用户名和密码是否匹配    if usr_name in usrs_info:        if usr_pwd == usrs_info[usr_name]:            tk.messagebox.showinfo(title='welcome',                                   message='欢迎您:'+usr_name)        else:            tk.messagebox.showerror(message='密码错误')    #用户名密码不能为空    elif usr_name=='' or usr_pwd=='' :        tk.messagebox.showerror(message='用户名或密码为空')    #不在数据库中弹出是否注册的框    else:        is_signup=tk.messagebox.askyesno('欢迎','您还没有注册,是否现在注册')        if is_signup:            usr_sign_up()#注册函数def usr_sign_up():    #确认注册时的相应函数    def signtowcg():        #获取输入框内的内容        nn=new_name.get()        np=new_pwd.get()        npf=new_pwd_confirm.get()         #本地加载已有用户信息,如果没有则已有用户信息为空        try:            with open('usr_info.pickle','rb') as usr_file:                exist_usr_info=pickle.load(usr_file)        except FileNotFoundError:            exist_usr_info={}                               #检查用户名存在、密码为空、密码前后不一致        if nn in exist_usr_info:            tk.messagebox.showerror('错误','用户名已存在')        elif np =='' or nn=='':            tk.messagebox.showerror('错误','用户名或密码为空')        elif np !=npf:            tk.messagebox.showerror('错误','密码前后不一致')        #注册信息没有问题则将用户名密码写入数据库        else:            exist_usr_info[nn]=np            with open('usr_info.pickle','wb') as usr_file:                pickle.dump(exist_usr_info,usr_file)            tk.messagebox.showinfo('欢迎','注册成功')            #注册成功关闭注册框            window_sign_up.destroy()    #新建注册界面    window_sign_up=tk.Toplevel(window)    window_sign_up.geometry('350x200')    window_sign_up.title('注册')    #用户名变量及标签、输入框    new_name=tk.StringVar()    tk.Label(window_sign_up,text='用户名:').place(x=10,y=10)    tk.Entry(window_sign_up,textvariable=new_name).place(x=150,y=10)    #密码变量及标签、输入框    new_pwd=tk.StringVar()    tk.Label(window_sign_up,text='请输入密码:').place(x=10,y=50)    tk.Entry(window_sign_up,textvariable=new_pwd,show='*').place(x=150,y=50)        #重复密码变量及标签、输入框    new_pwd_confirm=tk.StringVar()    tk.Label(window_sign_up,text='请再次输入密码:').place(x=10,y=90)    tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*').place(x=150,y=90)        #确认注册按钮及位置    bt_confirm_sign_up=tk.Button(window_sign_up,text='确认注册',                                 command=signtowcg)    bt_confirm_sign_up.place(x=150,y=130)#退出的函数def usr_sign_quit():    window.destroy()#登录 注册按钮bt_login=tk.Button(window,text='登录',command=usr_log_in)bt_login.place(x=140,y=230)bt_logup=tk.Button(window,text='注册',command=usr_sign_up)bt_logup.place(x=210,y=230)bt_logquit=tk.Button(window,text='退出',command=usr_sign_quit)bt_logquit.place(x=280,y=230)#主循环window.mainloop()

到此这篇关于python tkinter制作用户登录界面的简单实现的文章就介绍到这了,更多相关python tkinter用户登录内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python之cur.fetchall与cur.fetchone提取数据并统计处理操作
解决Python访问MySQL数据库速度慢的问题
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。