用python进行GUI编程,实现用户注册和登录功能 (1)用户注册功能要求如下: 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。 (2)用户登录功能要求如下: 输入时要进行用户名、密码校验,当用户名、密码与文件
时间: 2024-02-21 17:58:37 浏览: 18
中保存的信息匹配时,弹出消息窗口提示“登录成功!”;否则,弹出消息窗口提示“用户名或密码错误,请重新输入”。以下是一个简单的Python GUI程序,实现了用户注册和登录功能。
```python
from tkinter import *
import re
# 校验用户名和密码格式
def check_input(username, password):
if re.match(r'^[a-zA-Z0-9][a-zA-Z0-9_]*$', username) and re.match(r'^[a-zA-Z0-9]+$', password):
return True
else:
return False
# 用户注册
def register():
username = username_entry.get()
password = password_entry.get()
if check_input(username, password):
with open('user.txt', 'r') as f:
for line in f.readlines():
if username in line:
messagebox.showinfo('提示', '该用户名已存在,请重新输入')
return
with open('user.txt', 'a') as f:
f.write(username + ':' + password + '\n')
messagebox.showinfo('提示', '注册成功!')
else:
messagebox.showinfo('提示', '用户名或密码格式不正确,请重新输入')
# 用户登录
def login():
username = username_entry.get()
password = password_entry.get()
with open('user.txt', 'r') as f:
for line in f.readlines():
if username + ':' + password + '\n' == line:
messagebox.showinfo('提示', '登录成功!')
return
messagebox.showinfo('提示', '用户名或密码错误,请重新输入')
# 创建窗口和控件
root = Tk()
root.title('用户登录系统')
root.geometry('300x200')
Label(root, text='用户名:').grid(row=0, column=0)
username_entry = Entry(root)
username_entry.grid(row=0, column=1)
Label(root, text='密码:').grid(row=1, column=0)
password_entry = Entry(root, show='*')
password_entry.grid(row=1, column=1)
register_button = Button(root, text='注册', command=register)
register_button.grid(row=2, column=0)
login_button = Button(root, text='登录', command=login)
login_button.grid(row=2, column=1)
root.mainloop()
```
这个程序使用了Python自带的GUI库Tkinter,创建了一个简单的窗口,包含用户名输入框、密码输入框、注册按钮和登录按钮。当用户点击注册按钮时,程序会读取user.txt文件,检查用户名是否已存在,如果不存在则将用户名和密码写入文件,弹出注册成功的提示框;如果已存在则弹出提示框要求用户重新输入。当用户点击登录按钮时,程序会读取user.txt文件,检查用户名和密码是否与文件中保存的信息匹配,如果匹配则弹出登录成功的提示框;如果不匹配则弹出提示框要求用户重新输入。