from tkinter import * from tkinter import messagebox class Application(Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.num = 0 # 判断打开另一个窗口的条件 self.pack() self.createwidght() self.usagename = self.entry01.get() self.password = self.entry02.get() def createwidght(self): # "创建组件" self.lable01 = Label(self, text="用户名") self.lable01.grid(row=0, column=0) name = StringVar() self.entry01 = Entry(self, textvariable=name, font=("宋体", 15)) name.set("请输入用户名字") self.entry01.grid(row=0, column=1) self.lable02 = Label(self, text="密码", ) self.lable02.grid(row=1, column=0) num = StringVar() self.entry02 = Entry(self, textvariable=num, show="*", font=("宋体", 15)) self.entry02.grid(row=1, column=1) self.btn1 = Button(self, text="登录",command=self.enroll, width=10) self.btn1.grid(row=2, column=1) self.btn1 = Button(self, text="注册", command=self.login, width=10) self.btn1.grid(row=3, column=1) def login(self): user = {} file = open("用户表.txt", 'r', encoding='utf-8') self.usagename = self.entry01.get() self.password = self.entry02.get() for line in file: line = line.strip().split(' ') user[line[0]] = line file.close() if self.usagename in user.keys(): messagebox.showinfo("注册", "注册失败请用户已存在") elif self.password == "": messagebox.showinfo("注册", "请先确保用户名和密码是否填写") else: file = open("用户表.txt", 'a', encoding='utf-8') file.write(str(self.usagename) + ' ' + str(self.password) + '\n') messagebox.showinfo("注册", "注册成功") print("*" * 30) file.close() rootEnter.destroy() self.num = 1 return self.num and self.password and self.usagename def enroll(self): file = open("用户表.txt", 'r', encoding='utf-8') user = {} self.usagename = self.entry01.get() self.password = self.entry02.get() for line in file: line = line.strip().split(' ') user[line[0]] = line file.close() if self.usagename in user.keys(): # print(user[account][1]) if user[self.usagename][1] ==self.password: messagebox.showinfo("登录", "登陆成功") rootEnter.destroy() self.num = 1 return self.num and self.usagename and self.password # 传参数num回去init函数里用于更改判断 else: messagebox.showinfo("登录", "登录失败请重新输入") else: messagebox.showinfo("登录", "没有此账号请重新登录")