• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python tkinter制作用户登录界面的简单实现

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

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

    运行如下:

    ​​​​​​

    代码如下:

    # -*- coding: utf-8 -*-
    """
    Created on Sun Aug  5 10:34:10 2018
    @author: Administrator
    """
    import tkinter as tk
    import tkinter.messagebox
    import 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用户登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python基础之tkinter图形化界面学习
    • Python聊天室带界面实现的示例代码(tkinter,Mysql,Treading,socket)
    • python2利用wxpython生成投影界面工具的图文详解
    • 用python制作个论文下载器(图形化界面)
    • Python中pycharm编辑器界面风格修改方法
    • Python PyQt5-图形界面的美化操作
    • python实现简单的井字棋游戏(gui界面)
    • 一个非常简单好用的Python图形界面库(PysimpleGUI)
    • python制作一个简单的gui 数据库查询界面
    • python 实现倒计时功能(gui界面)
    • 用Python给图像算法做个简单应用界面
    上一篇:python之cur.fetchall与cur.fetchone提取数据并统计处理操作
    下一篇:解决Python访问MySQL数据库速度慢的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python tkinter制作用户登录界面的简单实现 python,tkinter,制作,用户,登录,