python代码编写2、登录框设计 (1)用户注册登录和注册界面,用户基本信息:用户名、密码、性别、地址、出生年月额等。 要求:1、信息注册从文本文件中读写;2、多窗口切换。
时间: 2023-08-31 08:42:47 浏览: 39
以下是一个简单的Python代码示例,演示如何实现登录框设计中的注册和登录功能,以及多窗口切换功能:
```python
import tkinter as tk
import csv
class LoginWindow:
def __init__(self, master):
self.master = master
self.master.title("Login Window")
self.master.geometry("300x200")
self.create_widgets()
def create_widgets(self):
tk.Label(self.master, text="Username").grid(row=0, column=0)
self.username_entry = tk.Entry(self.master)
self.username_entry.grid(row=0, column=1)
tk.Label(self.master, text="Password").grid(row=1, column=0)
self.password_entry = tk.Entry(self.master, show="*")
self.password_entry.grid(row=1, column=1)
tk.Button(self.master, text="Login", command=self.login).grid(row=2, column=0)
tk.Button(self.master, text="Register", command=self.show_register_window).grid(row=2, column=1)
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
# 从文本文件中读取用户信息
with open("users.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
if row[0] == username and row[1] == password:
print("Login successful!")
return
print("Username or password incorrect!")
def show_register_window(self):
self.master.withdraw()
register_window = tk.Toplevel(self.master)
RegisterWindow(register_window, self)
class RegisterWindow:
def __init__(self, master, login_window):
self.master = master
self.master.title("Register Window")
self.master.geometry("300x200")
self.login_window = login_window
self.create_widgets()
def create_widgets(self):
tk.Label(self.master, text="Username").grid(row=0, column=0)
self.username_entry = tk.Entry(self.master)
self.username_entry.grid(row=0, column=1)
tk.Label(self.master, text="Password").grid(row=1, column=0)
self.password_entry = tk.Entry(self.master, show="*")
self.password_entry.grid(row=1, column=1)
tk.Button(self.master, text="Register", command=self.register).grid(row=2, column=0)
tk.Button(self.master, text="Cancel", command=self.cancel).grid(row=2, column=1)
def register(self):
username = self.username_entry.get()
password = self.password_entry.get()
# 将用户信息保存到文本文件中
with open("users.csv", "a") as f:
writer = csv.writer(f)
writer.writerow([username, password])
print("Registration successful!")
self.cancel()
def cancel(self):
self.master.destroy()
self.login_window.master.deiconify()
if __name__ == "__main__":
root = tk.Tk()
LoginWindow(root)
root.mainloop()
```
这段代码演示了如何使用tkinter库来创建登录框设计中的注册和登录窗口,以及实现多窗口切换功能。具体来说:
- LoginWindow类创建了登录窗口,包括用户名和密码输入框、登录按钮和注册按钮。当用户点击登录按钮时,程序会从文本文件中读取用户信息,并验证用户名和密码是否正确。
- RegisterWindow类创建了注册窗口,包括用户名和密码输入框、注册按钮和取消按钮。当用户点击注册按钮时,程序会将用户信息保存到文本文件中,并提示用户注册成功。
- show_register_window()方法会在用户点击注册按钮时调用,用于隐藏登录窗口并显示注册窗口。
- cancel()方法会在用户点击取消按钮时调用,用于关闭注册窗口并恢复登录窗口的显示。
在运行程序时,用户可以先在登录窗口登录,或者点击注册按钮进入注册窗口进行注册。当用户注册成功后,程序会自动关闭注册窗口,并返回登录窗口,允许用户使用新账户登录。