1、绑定信号和槽
这里的信号是指注册和登录按钮(pushbutton)点击信号,槽则是指对应的函数实现。PySide6不同的组件有不同的绑定方放,但基本上原理都是一致的,下面是PushButton
的绑定方法。
#绑定注册功能
self.ui.register_4.clicked.connect(self.new_account)
#绑定登录功能
self.ui.login.clicked.connect(self.signIn)
register_4和login分别是注册和登录按钮(PushBotton),当被点击是自动与函数self.new_account和self.signIn函数链接。
2、注册函数的实现
def new_account(self):
#获取已存在用户
USERS = get_user_info()
#获取用户名和密码
new_username = self.ui.lineEdit_3.text().strip()
new_userpwd = self.ui.lineEdit_4.text().strip()
new_userpwd_2 = self.ui.lineEdit_5.text().strip()
#如果用户名为空,则显示报错信息
if new_username == "":
replay = QMessageBox.warning(self,'!','账号名不许为空',QMessageBox.Yes)
else:
#若用户名存在,报错
if new_username in USERS.keys():
replay = QMessageBox.warning(self,'!','账号已存在',QMessageBox.Yes)
else:
#若密码不一致则报错
if new_userpwd != new_userpwd_2:
replay = QMessageBox.warning(self,'!','密码不一致',QMessageBox.Yes)
else:
#注册成功
replay = QMessageBox.warning(self,'!','注册成功',QMessageBox.Yes)
#保存注册信息
save_user_info(new_username,new_userpwd)
#跳转登录界面
self.gotoStack(0)
3、登录函数的实现
def signIn(self):
#获取用户名和密码
username = self.ui.lineEdit.text().strip()
password = self.ui.lineEdit_2.text().strip()
#获取已注册用户信息
USERS = get_user_info()
if username not in USERS.keys():
replay = QMessageBox.warning(self,'!','用户不存在',QMessageBox.Yes)
else:
#判断密码是否正确
if USERS.get(username) == password:
replay = QMessageBox.warning(self,'!','登陆成功',QMessageBox.Yes)
print('登录成功')
else:
replay = QMessageBox.warning(self,'!','密码输入错误',QMessageBox.Yes)
pass
4、utils
这里用户名和密码简单的用.csv
文件以键值对的方式存储,这是最简单的做法,也可以使用数据库存储,过程也相对得复杂些。
import csv
#保存用户信息
def save_user_info(username,pwd):
header = ['name','key']
values = [{'name':username,'key':pwd}]
with open('userInfo.csv','a',encoding='utf-8',newline='\n') as f:
writer = csv.DictWriter(f,header)
writer.writerows(values)
pass
#获取用户名和密码
def get_user_info():
#读取csv文件用户信息
USERS = {}
with open('userInfo.csv','r') as f:
reader = csv.reader(f)
#逐行遍历
for row in reader:
USERS[row[0]] = row[1]
#返回
return USERS