【PySide6】登录和注册信号绑定以及代码实现

1、绑定信号和槽

 这里的信号是指注册和登录按钮(pushbutton)点击信号,槽则是指对应的函数实现。PySide6不同的组件有不同的绑定方放,但基本上原理都是一致的,下面是PushButton的绑定方法。

#绑定注册功能
self.ui.register_4.clicked.connect(self.new_account)
#绑定登录功能
self.ui.login.clicked.connect(self.signIn)

register_4login分别是注册和登录按钮(PushBotton),当被点击是自动与函数self.new_accountself.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

5、视频实现过程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸可落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值