用户登录窗口,主窗口界面如图1、图2所示,编程实现用户注册和登录功能 (1)用户注册功能要求如下: - 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 - 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。 (2)用户登录功能要求如下: - 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。
时间: 2024-02-25 11:51:44 浏览: 180
我了解你的要求,以下是一个简单的 Python 代码实现:
```python
import re
import tkinter as tk
from tkinter import messagebox
# 校验用户名格式
def validate_username(username):
pattern = r'^[a-zA-Z0-9][a-zA-Z0-9_]*$'
return bool(re.match(pattern, username))
# 校验密码格式
def validate_password(password):
pattern = r'^[a-zA-Z0-9]+$'
return bool(re.match(pattern, password))
# 注册功能实现
def register():
username = entry_username.get().strip()
password = entry_password.get().strip()
if not validate_username(username):
messagebox.showerror('错误', '用户名必须以数字或字母开头,后面可以带数字、字母或者下划线!')
return
if not validate_password(password):
messagebox.showerror('错误', '密码必须由数字和字母组成!')
return
with open('user.txt', 'r') as f:
for line in f:
if line.startswith(username + ','):
messagebox.showerror('错误', '该用户名已存在,请重新输入!')
return
with open('user.txt', 'a') as f:
f.write(f'{username},{password}\n')
messagebox.showinfo('提示', '注册成功!')
# 登录功能实现
def login():
username = entry_username.get().strip()
password = entry_password.get().strip()
with open('user.txt', 'r') as f:
for line in f:
line = line.strip()
if line.startswith(username + ','):
_, pwd = line.split(',')
if pwd == password:
messagebox.showinfo('提示', '登录成功!')
sub_window = tk.Toplevel(root)
sub_window.title('子窗口')
sub_window.geometry('200x100')
tk.Label(sub_window, text='这是一个子窗口').pack()
return
messagebox.showerror('错误', '用户名或者密码错误!')
# 创建主窗口
root = tk.Tk()
root.title('用户登录窗口')
root.geometry('300x200')
# 用户名输入框
tk.Label(root, text='用户名:').place(x=50, y=50)
entry_username = tk.Entry(root)
entry_username.place(x=100, y=50)
# 密码输入框
tk.Label(root, text='密 码:').place(x=50, y=80)
entry_password = tk.Entry(root, show='*')
entry_password.place(x=100, y=80)
# 注册按钮
btn_register = tk.Button(root, text='注册', command=register)
btn_register.place(x=100, y=120)
# 登录按钮
btn_login = tk.Button(root, text='登录', command=login)
btn_login.place(x=160, y=120)
root.mainloop()
```
这是一个基于 Tkinter 模块的 GUI 程序,实现了用户注册和登录功能。你可以将以上代码保存为一个.py文件,运行后即可看到窗口界面。
阅读全文
相关推荐
















