简单的用户登录、注册界面
import tkinter as tk
import time
import subprocess
import sys
import os
import tkinter.messagebox
window = tk.Tk()
window.title('GCHEK')
window.geometry('400x300')
if not os.path.exists('Users'):
os.mkdir('Users')
with open('Users/Users.txt','r') as fp:
fp.close()
canvas = tk.Canvas(window, bg='blue', height=120, width=400)
canvas.pack(side='top')
image_file = tk.PhotoImage(file='pic.gif')
image = canvas.create_image(200, 0, anchor='n',image=image_file)
def sign_up_winow():
window1 = tk.Toplevel(window)
window1.title('注册')
window1.geometry('300x130')
window1.attributes("-topmost", True)
def pd():
if "@" in e1.get():
tkinter.messagebox.showerror(title='GCHEK',message='账号密码中不能带@',parent=window1)
return None
elif "@" in e2.get():
tkinter.messagebox.showerror(title='GCHEK',message='账号密码中不能带@',parent=window1)
return None
else:
return Users()
def Users():
with open('Users/Users.txt','a') as fp:
fp.write(e1.get()+'@' + e2.get()+'\n')
tkinter.messagebox.showinfo(title='GCHEK',message='注册成功',parent=window1)
fp.close()
window1.destroy()
def exit():
window1.destroy()
l1 = tk.Label(window1, text='User-name:', font=('Arial', 12), width=20)
l1.place(x=80, y=0, anchor='n')
e1 = tk.Entry(window1, font=('Arial', 10), width=20)
e1.place(x=200, y=0, anchor='n')
l2 = tk.Label(window1, text='User-password:', font=('Arial', 12), width=20)
l2.place(x=65, y=23, anchor='n')
e2 = tk.Entry(window1, font=('Arial', 10), width=20)
e2.place(x=200, y=25, anchor='n')
b1 = tk.Button(window1, text='Sign In', width=10, command=pd)
b1.place(x=80, y=70, anchor='n')
b2 = tk.Button(window1, text='Exit', width=10, command=exit)
b2.place(x=220, y=70, anchor='n')
window1.mainloop()
def find_Users():
try:
with open('Users/Users.txt','r',encoding='utf8') as fp:
txt=fp.readlines()
for i in txt:
a=i.strip()
name,password = a.split('@')
if e1.get() == name and e2.get() == password:
tkinter.messagebox.showinfo(title='GCHEK', message='Welcome!登录成功')
fp.close()
return next_part()
elif e1.get()==name:
tkinter.messagebox.showerror(title='GCHEK', message='账号密码错误')
fp.close()
return None
else:
continue
tkinter.messagebox.showwarning(title='GEHEK', message='账号未注册')
except:
tkinter.messagebox.showerror(title="GCHEK",message='错误')
def next_part():
window.destroy()
subprocess.run([{},{输入你想运行的程序}],shell=True)
sys.exit()
def exit():
window.destroy()
l1 = tk.Label(window,text='User-name:',font=('Arial',12),width=20)
l1.place(x=85,y=127,anchor='n')
e1 = tk.Entry(window,font=('Arial',10),width=20)
e1.place(x=200,y=130,anchor='n')
l2 = tk.Label(window,text='User-password:',font=('Arial',12),width=20)
l2.place(x=70,y=152,anchor='n')
e2 = tk.Entry(window,font=('Arial',10),width=20)
e2.place(x=200,y=155,anchor='n')
b1 = tk.Button(window,text='Login In',width=10,command=find_Users)
b1.place(x=150,y=180,anchor='n')
b2 = tk.Button(window,text='Exit',width=20,command=exit)
b2.place(x=200,y=210,anchor='n')
b3 = tk.Button(window,text='Sign Up',width=10,command=sign_up_winow)
b3.place(x=250,y=180,anchor='n')
window.mainloop()