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