我正在为我的应用程序创建一个登录页面,我想要做的就是当我成功登录窗口时从登录更改为一个新的空白窗口,我可以从该窗口附加到一个类并开始使用作为我的项目主要我已经尝试了多种方式,但都证明是不成功的。我的代码的当前阶段我有窗口显示,但另外我不能关闭登录,因为它关闭整个程序,我已经知道这是因为它是主类,但我怎么能绕过这个,随意改变或者发布改进我的代码的方法因为我在python中仍然是一个粗略的初学者
import tkinter
from tkinter import *
from tkinter import messagebox
class LoginFrame(Frame):
counter = 0
def __init__(self, master):
Frame.__init__(self, master)
self.label_1 = Label(self, text="Username")
self.label_2 = Label(self, text="Password")
self.entry_1 = Entry(self)
self.entry_2 = Entry(self, show="*")
self.label_1.grid(row=0)
self.entry_1.grid(row=0, column=1)
self.label_2.grid(row=1)
self.entry_2.grid(row=1, column=1)
self.checkbox = Checkbutton(self, text="Keep me logged in")
self.checkbox.grid(columnspan=2)
self.logbtn = Button(self, text="Login", command=self.login_btn)
self.logbtn.grid(columnspan=2)
self.pack()
def login_btn(self):
#print("On click action/event")
Username = self.entry_1.get()
Password = self.entry_2.get()
#print(username, password)
if Username == "Lewis" and Password == "starwars10":
messagebox.showinfo("Login Successful", "Welcome Lewis")
self.counter += 1
t = tkinter.Toplevel(self)
t.wm_title("Window #%s" % self.counter)
l = tkinter.Label(t, text="This is window #%s" % self.counter)
l.pack(side="top", fill="both", expand=True, padx=100, pady=100)
#TODO fix quit so that as one window opens old one closes
#self.quit() # destroys login window
else:
messagebox.showerror("Login Incorrect", "Invalid Credentials")
root = Tk()
root.geometry("300x200")
lf = LoginFrame(root)
root.mainloop()