From fbe9baccb4dad07c08bdc1c531147e8218b5176e Mon Sep 17 00:00:00 2001 From: p85pylmu6 <2315457363@qq.com> Date: Fri, 31 May 2024 15:20:38 +0800 Subject: [PATCH] ADD file via upload --- foreWindow.py | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 foreWindow.py diff --git a/foreWindow.py b/foreWindow.py new file mode 100644 index 0000000..1e2b9ff --- /dev/null +++ b/foreWindow.py @@ -0,0 +1,91 @@ +import subprocess +import tkinter as tk +import tkinter.messagebox as msgbox +import pickle +import threading + +window = tk.Tk() +window.resizable(0, 0) #让窗口大小不变 +window.title("停车场信息管理系统") +# 窗口居中 +ww, wh = 400, 250 +sw, sh = window.winfo_screenwidth(), window.winfo_screenheight() +x, y = (sw - ww) / 2, (sh - wh) / 2 +window.geometry("%dx%d+%d+%d" % (ww, wh, x, y)) +# 欢迎使用 +l_wlc = tk.Label(window, text="Welcome!", font=("Arial", 32)) +l_wlc.pack() #将标签添加到窗口 +# 用户名标签框 +l_usr = tk.Label(window, text="用户名:") +l_usr.place(x=65, y=100) +l_key = tk.Label(window, text="密码:") +l_key.place(x=65, y=140) +# 用户名输入框 +var1 = tk.StringVar() +var2 = tk.StringVar() +e_usr = tk.Entry(window, textvariable=var1) +e_key = tk.Entry(window, textvariable=var2, show="*") +e_usr.place(x=145, y=100) +e_key.place(x=145, y=140) + + +# 多线程实现同时打开新窗口和关闭本窗口 +def tuichu(): + window.quit() + +def open_new(): + subprocess.run(["python", "mainWindow.py"]) + + +# 登录 +def login(): + t1 = threading.Thread(target=tuichu) + #t1.daemon = 1 + t2 = threading.Thread(target=open_new) + #t2.daemon = 1 + + # 获得用户名字符串和密码字符串 + usr = var1.get() + pwd = var2.get() + # 登录前检查:判断输入框是否为空 + if usr != "": + if pwd != "": + # 将pickle内信息写入到listAll中 + listAll = [] + try: + with open("administrators.pickle", "rb+") as fp: + try: + while True: + temp = pickle.load(fp) + listAll.append(temp) + except EOFError: + pass + except FileNotFoundError: + with open("administrators.pickle", "wb") as fp: + pickle.dump(("admin", "admin"), fp) + else: + pass + + # 检查该管理用户是否在存档中,密码是否匹配 + for person in listAll: + if person[0] == usr and person[1] == pwd: + with open("record.txt", "w+") as file: + file.write("这是一个用于存储登录用户的名字的临时文件\n"+usr) + t1.start() + t2.start() + break + else: + msgbox.showerror(message="用户名或者密码错误!") + else: + msgbox.showerror("⚠", "请输入密码") + else: + msgbox.showerror("⚠", "请输入用户名") + + +btn_login = tk.Button(window, text="登录", width=8, command=login) +btn_login.place(x=145, y=190) +# 退出 +btn_exit = tk.Button(window, text="退出", width=8, command=window.quit) +btn_exit.place(x=220, y=190) + +window.mainloop()