From 955e3487fb8d712309d28c5972448e6e0fd970c7 Mon Sep 17 00:00:00 2001 From: BellCodeEditor <bellcode_dev@bell.ai> Date: Sat, 8 May 2021 18:54:48 +0800 Subject: [PATCH] auto save --- my_app.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- user.txt | 2 +- 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/my_app.py b/my_app.py index 3db7fe7..63c8265 100644 --- a/my_app.py +++ b/my_app.py @@ -1,17 +1,52 @@ import tkinter +from tkinter import messagebox +import json + +with open('user.txt', 'r', encoding='utf-8')as f: + info = f.read() + users = json.loads(info) + def login_to_reg(): # 登录界面转注册界面 - pass + app_login.root.destroy() + global app_reg # 全局变量 + app_reg = My_register() + app_reg.show() + def reg_to_login(): # 注册界面转登录界面 - pass + app_reg.root.destroy() + global app_login + app_login = My_login() + app_login.show() + def register(): # 注册验证 - pass + name, password1, password2 = app_reg.get_input() + if name == '' or password1 == '' or password2 == '': + messagebox.showwarning('警告', '请填写完整信息') + elif name in users: + messagebox.showerror('错误', '用户名已经存在') + elif password1 != password2: + messagebox.showerror('错误', '两次密码不一致!') + else: + users[name] = password1 + content = json.dumps(users) + with open('user.txt', 'w', encoding='utf-8')as file: + file.write(content) + # 注册成功,跳到登录页面 + messagebox.showinfo('成功', '注册成功') + reg_to_login() -def login(): # 登录验证 - pass +def login(): # 登录验证 + name, password = app_login.get_input() + paw = users.get(name) + if paw == password: + messagebox.showinfo('成功','登录成功') + else: + messagebox.showerror('错误','账号或密码有误!') + class My_login(): # 登录窗口 def __init__(self): self.root = tkinter.Tk() @@ -21,30 +56,30 @@ class My_login(): # 登录窗口 def show(self): # 登录界面的所有控件 # Label文本标签,界面提示信息 - l = tkinter.Label(self.root, text='您好!请登录', bg='green', - font=('宋体', 15), width=40, height=2) + l = tkinter.Label(self.root, text='您好!请登录', bg='green', + font=('宋体', 15), width=40, height=2) l.place(x=0, y=0) l = tkinter.Label(self.root, text='用户名:', font=("宋体", 12), - fg="black") + fg="black") l.place(x=50, y=80) - l = tkinter.Label(self.root, text='密 码:', font=("宋体", 12), - fg="black") + l = tkinter.Label(self.root, text='密 码:', font=("宋体", 12), + fg="black") l.place(x=50, y=140) # Entry单行文本输入框:用户名、密码 - self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), - bg="light grey", width=18) # 显示成明文形式 + self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), + bg="light grey", width=18) # 显示成明文形式 self.e2 = tkinter.Entry(self.root, show='*', font=('宋体', 14), - width=18) # 显示成密文形式 + width=18) # 显示成密文形式 self.e1.place(x=120, y=80) self.e2.place(x=120, y=140) # 登录、注册按钮 button1 = tkinter.Button(self.root, text='登录', bg="lightblue", - fg="black", width=15, command=login) + fg="black", width=15, command=login) button1.place(x=60, y=220) button1 = tkinter.Button(self.root, text='注册', bg="lightgreen", - fg="black", width=15, command=login_to_reg) + fg="black", width=15, command=login_to_reg) button1.place(x=230, y=220) # 进入消息循环,监听事件 self.root.mainloop() @@ -54,45 +89,46 @@ class My_login(): # 登录窗口 self.password = self.e2.get() return self.name, self.password + class My_register(): # 注册窗口 def __init__(self): self.root = tkinter.Tk() self.root.title("注册窗口") self.root.geometry('400x320+500+300') self.root.resizable(width=False, height=False) # True可以拉伸,False不能拉伸 - + def show(self): # 注册界面的所有控件 # 用户名、密码、确认密码输入框 - self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), - bg="light grey", width=18) # 显示成明文形式 + self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), + bg="light grey", width=18) # 显示成明文形式 self.e1.place(x=140, y=80) self.e2 = tkinter.Entry(self.root, show='*', font=('宋体', 14), - width=18) + width=18) self.e2.place(x=140, y=140) self.e3 = tkinter.Entry(self.root, show='*', font=('宋体', 14), - width=18) + width=18) self.e3.place(x=140, y=200) # Label文本标签,窗口界面文字:用户名、密码、确认密码 lab = tkinter.Label(self.root, text='您好!请填写注册信息', - font=('宋体', 15),fg="black", width=40, height=2, bg="green") + font=('宋体', 15), fg="black", width=40, height=2, bg="green") lab.place(x=0, y=0) lab1 = tkinter.Label(self.root, text='用户名:', font=("宋体", 12), - fg="black") + fg="black") lab1.place(x=60, y=80) lab2 = tkinter.Label(self.root, text='密 码:', font=("宋体", 12), - fg="black") + fg="black") lab2.place(x=60, y=140) lab3 = tkinter.Label(self.root, text='确认密码:', font=("宋体", 12), - fg="black") + fg="black") lab3.place(x=50, y=200) # 注册界面的提交、取消按钮 button1 = tkinter.Button(self.root, text='提交', bg="lightblue", - width=15,command=register) + width=15, command=register) button1.place(x=230, y=250) button1 = tkinter.Button(self.root, text='取消', bg="lightgreen", - width=15, command=reg_to_login) + width=15, command=reg_to_login) button1.place(x=80, y=250) # 进入消息循环 self.root.mainloop() @@ -103,5 +139,6 @@ class My_register(): # 注册窗口 self.password2 = self.e3.get() return self.name, self.password1, self.password2 + app_login = My_login() -app_login.show() \ No newline at end of file +app_login.show() diff --git a/user.txt b/user.txt index 6a2553e..5d0c3de 100644 --- a/user.txt +++ b/user.txt @@ -1 +1 @@ -{"admin": "123456"} \ No newline at end of file +{"admin": "123456", "python": "123"} \ No newline at end of file -- libgit2 0.25.0