parent
27df38732c
commit
ffcbace277
@ -0,0 +1,108 @@
|
|||||||
|
import tkinter as tk
|
||||||
|
import pickle
|
||||||
|
import tkinter.messagebox as msgbox
|
||||||
|
|
||||||
|
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_usr = tk.Label(window, text="用户名:")
|
||||||
|
l_usr.place(x=50, y=60)
|
||||||
|
# 密码
|
||||||
|
l_key = tk.Label(window, text="新密码:")
|
||||||
|
l_key.place(x=50, y=90)
|
||||||
|
# 密码确认
|
||||||
|
l_cf = tk.Label(window, text="确认密码:")
|
||||||
|
l_cf.place(x=50, y=120)
|
||||||
|
|
||||||
|
# 单行文本框 读取当前用户的用户名,并显示在文本框中
|
||||||
|
usr_info = ""
|
||||||
|
with open("record.txt", "r") as fp:
|
||||||
|
usr_info += fp.readlines()[1]
|
||||||
|
var_usr = tk.StringVar()
|
||||||
|
var_usr.set(usr_info)
|
||||||
|
var_key = tk.StringVar()
|
||||||
|
var_cf = tk.StringVar()
|
||||||
|
e_usr = tk.Entry(window, width=35, textvariable=var_usr)
|
||||||
|
e_key = tk.Entry(window, width=35, textvariable=var_key)
|
||||||
|
e_cf = tk.Entry(window, width=35, textvariable=var_cf)
|
||||||
|
e_usr.place(x=120, y=60)
|
||||||
|
e_key.place(x=120, y=90)
|
||||||
|
e_cf.place(x=120, y=120)
|
||||||
|
|
||||||
|
|
||||||
|
def check_or_create(yonghu, mima):
|
||||||
|
listAll = []
|
||||||
|
with open("administrators.pickle", "rb") as file1:
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
temp = pickle.load(file1)
|
||||||
|
listAll.append(temp)
|
||||||
|
except EOFError:
|
||||||
|
pass
|
||||||
|
# 读取了空文件的操作
|
||||||
|
if len(listAll) != 0:
|
||||||
|
for i in range(len(listAll)):
|
||||||
|
if (listAll[i][0] != yonghu) or (listAll[i][1] != mima):
|
||||||
|
listAll.pop(i)
|
||||||
|
listAll.append((yonghu, mima))
|
||||||
|
temp_file = open("administrators.pickle", "wb")
|
||||||
|
for p in listAll:
|
||||||
|
pickle.dump(p, temp_file)
|
||||||
|
temp_file.close()
|
||||||
|
msgbox.showinfo(message="修改成功")
|
||||||
|
window.quit()
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
msgbox.showerror(message="未修改")
|
||||||
|
# 防止意外删除而报错,默认管理员接管程序
|
||||||
|
else:
|
||||||
|
with open("administrators.pickle", "wb+") as file4:
|
||||||
|
pickle.dump(("admin", "admin"), file4)
|
||||||
|
|
||||||
|
|
||||||
|
# 保存
|
||||||
|
def save():
|
||||||
|
# 获取输入信息
|
||||||
|
usr = var_usr.get()
|
||||||
|
key = var_key.get()
|
||||||
|
cf = var_cf.get()
|
||||||
|
# 先检查用户名输入是否为空,若为空则报错
|
||||||
|
if usr != "":
|
||||||
|
if key != "":
|
||||||
|
if cf != "":
|
||||||
|
# 先检查两次密码是否一致
|
||||||
|
if key == cf:
|
||||||
|
# 试图打开文件并读取内容,若文件不存在则新建并初始化
|
||||||
|
try:
|
||||||
|
check_or_create(usr, key)
|
||||||
|
except FileNotFoundError:
|
||||||
|
with open("administrators.pickle", "wb") as file3:
|
||||||
|
pickle.dump(("admin", "admin"), file3)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
else:
|
||||||
|
msgbox.showerror(title="⚠", message="两次密码不一致")
|
||||||
|
else:
|
||||||
|
msgbox.showerror("⚠", "确认密码为空!")
|
||||||
|
else:
|
||||||
|
msgbox.showerror("⚠", "密码为空!")
|
||||||
|
else:
|
||||||
|
msgbox.showerror("⚠", "用户名为空!")
|
||||||
|
|
||||||
|
|
||||||
|
# 按钮控件
|
||||||
|
btn_save = tk.Button(window, text="保存", width=10, command=save)
|
||||||
|
btn_exit = tk.Button(window, text="取消", width=10, command=window.quit)
|
||||||
|
btn_save.place(x=140, y=170)
|
||||||
|
btn_exit.place(x=240, y=170)
|
||||||
|
|
||||||
|
window.mainloop()
|
Loading…
Reference in new issue