python设计一个登录界面

1.设计登录界面

1.1导入需要的工具包

import tkinter as tk
from PIL import Image, ImageTk
import pickle
from tkinter import messagebox
import subprocess

1.2窗口显示

window = tk.Tk()
window.title("Welcome")
window.geometry('500x600')

1.3登录界面图片显示

image = Image.open("welcome.gif")
photo = ImageTk.PhotoImage(image)

1.4 用户名设置默认值

value = "GaoYue"
entry_var = tk.StringVar(window)
entry_var.set(value)

1.5标签按钮输入框显示

label1_image = tk.Label(window,image=photo)
label1_image.place(x=10,y=10)
label2 = tk.Label(window,text='User name',width=10,height=5)
label2.place(x=40,y=130)
label3 = tk.Label(window,text='password',width=10,height=5)
label3.place(x=40,y=180)
label4 = tk.Entry(window,width=30,bd=5)
label4.place(x=140,y=210)
label5 = tk.Entry(window,textvariable=entry_var,width=30,bd=5)
label5.place(x=140,y=160)

button1 = tk.Button(window,text='Loign',width=10,command=usr_login)
button1.place(x=140,y=280)
button2 = tk.Button(window,text='Sign up',width=10,command=usr_sign_up)
button2.place(x=250,y=280)

在这里插入图片描述

2.登录功能实现

2.1用户数据存储

def usr_login():
    usr_name = label5.get()
    usr_pwd=label4.get()
    print(usr_name)
    try:
        with open("usrs_info.pickle",'rb') as usr_file:
            print("1")
            usrs_info = pickle.load(usr_file)
            print(usrs_info)
    except FileNotFoundError:
        with open("usrs_info.pickle",'wb') as usr_file:
            print("2")
            usrs_info = {'admin':'admin'}
            pickle.dump(usrs_info,usr_file)

2.2登录和注册

2.2.1登录功能实现

print("ok")
print("usr_name:",usr_name)
if usr_name in usrs_info:
    print("3")
    if usr_pwd  == usrs_info[usr_name]:
        tk.messagebox.showinfo(title="Welcome",message="How are you"+usr_name)
        tk.messagebox.showinfo(title="Game Start", message="Let's start the game!")
        subprocess.run(["python", "井字棋.py"])
    else:
        tk.messagebox.showerror(message="Error,your password is wrong,try again.")
else:
    print("4")
    is_sign_up = tk.messagebox.askyesno(title="Welcome",message="You have not sign up yet.sign up today?")

注册功能实现

def sign_up():
    nn = entry9.get()
    np = entry10.get()
    npf = entry11.get()
    with open('usrs_info.pickle','rb') as usr_file:
        exist_usr_info = pickle.load(usr_file)
    if np != npf:
        tk.messagebox.showerror("Error","The user has already signed up!")
    elif nn in exist_usr_info:
        print("已经注册过了")
        tk.messagebox.showerror("Error","The user has already signed up!")
    else:
        exist_usr_info[nn] = np
        with open("usrs_info.pickle","wb") as usr_file:
            pickle.dump(exist_usr_info,usr_file)
        tk.messagebox.showinfo("Welcome","You have successfully signed up!")
        window.destroy()
button3 = tk.Button(window, text='Sign up', width=10,command=sign_up)
button3.place(x=140, y=150)
print("开始注册")

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值