tkinter实现一个登录页面并可以跳转到主界面
时间: 2024-03-05 19:47:27 浏览: 33
好的,下面是一个使用 `tkinter` 实现的简单的登录页面,并可以跳转到主界面的示例代码:
```python
import tkinter as tk
from tkinter import messagebox
class LoginWindow:
def __init__(self, master):
self.master = master
self.master.title('Login')
self.master.geometry('300x150')
self.label_username = tk.Label(self.master, text='Username:', font=('Arial', 12))
self.label_username.pack()
self.entry_username = tk.Entry(self.master, font=('Arial', 12))
self.entry_username.pack()
self.label_password = tk.Label(self.master, text='Password:', font=('Arial', 12))
self.label_password.pack()
self.entry_password = tk.Entry(self.master, show='*', font=('Arial', 12))
self.entry_password.pack()
self.button_login = tk.Button(self.master, text='Login', font=('Arial', 12), command=self.login)
self.button_login.pack(side='left', padx=20)
self.button_cancel = tk.Button(self.master, text='Cancel', font=('Arial', 12), command=self.cancel)
self.button_cancel.pack(side='right', padx=20)
def login(self):
username = self.entry_username.get()
password = self.entry_password.get()
if username == 'your_username' and password == 'your_password':
messagebox.showinfo('Success', 'Login success!')
self.master.destroy()
MainWindow()
else:
messagebox.showerror('Error', 'Invalid username or password')
def cancel(self):
self.master.destroy()
class MainWindow:
def __init__(self):
self.master = tk.Tk()
self.master.title('Main')
self.master.geometry('300x150')
self.label = tk.Label(self.master, text='Welcome to Main Page!', font=('Arial', 18))
self.label.pack(pady=20)
self.button_exit = tk.Button(self.master, text='Exit', font=('Arial', 12), command=self.master.destroy)
self.button_exit.pack()
self.master.mainloop()
if __name__ == '__main__':
root = tk.Tk()
login_window = LoginWindow(root)
root.mainloop()
```
在上面的代码中,我们定义了两个类:`LoginWindow` 和 `MainWindow`。`LoginWindow` 类用于显示登录窗口,并处理用户登录验证,如果验证成功,则跳转到 `MainWindow` 窗口。
在 `LoginWindow` 类中,我们使用 `tkinter` 的控件创建了一个简单的登录窗口,包括两个标签、两个文本框和两个按钮。在点击 `Login` 按钮时,我们使用 `get()` 方法获取用户名和密码,并进行验证。如果验证成功,则弹出一个消息框显示登录成功,并关闭当前窗口并打开 `MainWindow` 窗口。如果验证不成功,则弹出一个消息框显示错误信息。
在 `MainWindow` 类中,我们同样使用 `tkinter` 的控件创建了一个简单的主窗口,包括一个标签和一个按钮。在点击 `Exit` 按钮时,我们使用 `destroy()` 方法关闭当前窗口。
最后,在 `if __name__ == '__main__'` 语句中,我们创建了一个 `Tk` 对象,并将其传递给 `LoginWindow` 类,以显示登录窗口。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)