Tkinter实现登录成功后进入主界面
时间: 2024-05-01 16:23:17 浏览: 68
好的,以下是一个简单的示例代码,实现了登录界面和主界面的切换:
```python
import tkinter as tk
class LoginFrame(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.master = master
self.create_widgets()
def create_widgets(self):
tk.Label(self, text="用户名").grid(row=0, column=0)
self.username_entry = tk.Entry(self)
self.username_entry.grid(row=0, column=1)
tk.Label(self, text="密码").grid(row=1, column=0)
self.password_entry = tk.Entry(self, show="*")
self.password_entry.grid(row=1, column=1)
self.login_button = tk.Button(self, text="登录", command=self.login)
self.login_button.grid(row=2, column=0, columnspan=2)
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
# 进行登录验证,这里简单地判断用户名和密码是否都为"admin"
if username == "admin" and password == "admin":
self.master.switch_frame(MainFrame)
else:
tk.messagebox.showerror("登录失败", "用户名或密码错误")
class MainFrame(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.master = master
self.create_widgets()
def create_widgets(self):
tk.Label(self, text="恭喜您登录成功!").pack()
self.logout_button = tk.Button(self, text="退出登录", command=self.logout)
self.logout_button.pack()
def logout(self):
self.master.switch_frame(LoginFrame)
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("300x200")
self.title("登录示例")
self.frames = {}
self.create_frames()
self.switch_frame(LoginFrame)
def create_frames(self):
for frame_class in (LoginFrame, MainFrame):
frame = frame_class(self)
self.frames[frame_class] = frame
frame.grid(row=0, column=0, sticky="nsew")
def switch_frame(self, frame_class):
frame = self.frames[frame_class]
frame.tkraise()
if __name__ == "__main__":
app = App()
app.mainloop()
```
运行上述代码,会弹出一个登录界面,输入用户名和密码后,若验证成功会进入主界面,点击"退出登录"按钮可以回到登录界面。