zoukankan      html  css  js  c++  java
  • tkinter 创建登陆注册界面

    import tkinter as tk
    from tkinter import messagebox
    
    #设置窗口居中
    def window_info():
        ws = window.winfo_screenwidth()
        hs = window.winfo_screenheight()
        x = (ws / 2) - 200
        y = (hs / 2) - 200
        print("%d,%d" % (ws, hs))
        return x,y
    
    #设置登陆窗口属性
    window = tk.Tk()
    window.title('欢迎使用停车场收费系统')
    a,b=window_info()
    window.geometry("450x300+%d+%d"%(a,b))
    
    #登陆界面的信息
    tk.Label(window,text="停车场收费系统",font=("宋体",32)).place(x=80,y=50)
    tk.Label(window,text="账号:").place(x=120,y=150)
    tk.Label(window,text="密码:").place(x=120,y=190)
    #显示输入框
    var_usr_name = tk.StringVar()
    #显示默认账号
    var_usr_name.set('1400370101')
    entry_usr_name=tk.Entry(window,textvariable=var_usr_name)
    entry_usr_name.place(x=190,y=150)
    var_usr_pwd = tk.StringVar()
    #设置输入密码后显示*号
    entry_usr_pwd = tk.Entry(window,textvariable=var_usr_pwd,show='*')
    entry_usr_pwd.place(x=190,y=190)
    
    #登陆函数
    def usr_login():
        #获取输入的账号密码
        usr_name = var_usr_name.get()
        usr_pwd = var_usr_pwd.get()
        #获取存储的账户信息,此处使用的是数据库,调用数据库查询函数,也可以使用其他方式,如文件等
        dicts = SQL.load('login')
        print(dicts)
        bool = False
        for row in dicts:
            print(row.get("name"))
            if usr_name == row["name"]:
                bool = True
                pwd = row["password"]
                print(row)
        if bool == True:
            if usr_pwd == pwd:
                tk.messagebox.showinfo(title='Welcome', message='How are you?' +usr_name)
                mainwindow()
            else:
                tk.messagebox.showerror(message='对不起,输入错误,请重试!')
        else:
            is_sign_up = tk.messagebox.askyesno('Welcome', '您还没有注册,是否现在注册呢?')
            if is_sign_up:
                usr_sign_up()
    #注册账号
    def usr_sign_up():
        def sign_to_Pyhon():
            np = new_pwd.get()
            npc = new_pwd_confirm.get()
            nn = new_name.get()
    
            dicts = SQL.load('login')
            print(dicts)
            bool = False
            for row in dicts:
                if nn == row["name"]:
                    bool = True
                    print(row)
            if np!=npc:
                tk.messagebox.showerror('对不起','两次密码输入不一致!')
            elif bool:
                tk.messagebox.showerror(('对不起','此账号已经存在!'))
            else:
                try:
                    SQL.insert_login(str(nn),str(np))
                    tk.messagebox.showinfo('Welcome','您已经注册成功!')
                except:
                    tk.messagebox.showerror(('注册失败!'))
                window_sign_up.destroy()
       #创建top窗口作为注册窗口
        window_sign_up = tk.Toplevel(window)
        window_sign_up.geometry('350x200')
        window_sign_up.title('注册')
    
        new_name = tk.StringVar()
        new_name.set('1400370115')
        tk.Label(window_sign_up,text='账号:').place(x=80,y=10)
        entry_new_name = tk.Entry(window_sign_up,textvariable=new_name)
        entry_new_name.place(x=150,y=10)
    
        new_pwd = tk.StringVar()
        tk.Label(window_sign_up, text='密码:').place(x=80, y=50)
        entry_usr_pwd =   tk.Entry(window_sign_up,textvariable=new_pwd,show='*')
        entry_usr_pwd.place(x=150, y=50)
    
        new_pwd_confirm = tk.StringVar()
        tk.Label(window_sign_up,text='再次输入:').place(x=80,y=90)
        entry_usr_pwd_again = tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*')
        entry_usr_pwd_again.place(x=150, y=90)
    
        btn_again_sign_up = tk.Button(window_sign_up,text='注册',command=sign_to_Pyhon)
        btn_again_sign_up.place(x=160,y=130)
    
    #登陆和注册按钮
    btn_login = tk.Button(window,text="登陆",command=usr_login)
    btn_login.place(x=170,y=230)
    btn_sign_up = tk.Button(window,text="注册",command=usr_sign_up)
    btn_sign_up.place(x=270,y=230)
    
    window.mainloop()
    

      这是我写的登陆注册界面,使用tkinter,可以实现简单的登陆和注册账号,使用的主要是Label,Entry和Button组件。

  • 相关阅读:
    CSRF
    XSS攻击
    SQL 注入
    python解析xml文件
    测试中一些想法
    jenkins+svn完整打包并上传到linux服务器上
    接口自动化测试遭遇问题,excel中取出来的json串,无法使用requests去请求解决办法
    jmeter如何链接数据库并拿到相应值用到请求中
    jmeter如何进行MQTT性能测试(测试前期准备二,MQTT插件及协议了解)
    jmeter如何进行MQTT性能测试(测试前期准备一,性能测试需求)
  • 原文地址:https://www.cnblogs.com/attentle/p/7096746.html
Copyright © 2011-2022 走看看