Qt使用QSettings保存和读取用户信息

Qt使用QSettings保存和读取用户信息

Qt中保存和读取用户信息可以使用数据库,也可以使用QSettings。当需要保存的信息较少,那么使用QSettings写入配置文件就是一种比较简单的方式。

以用户注册与登录为例。

  1. 注册

首先绘制注册页,添加两个QLineEdit和一个QPushButton,如下。

注册页
然后开始编写配置文件。

首先你要include QSettings。

#include <QSettings>

然后,编写按钮的槽函数,将用户输入的内容保存到本地的配置文件中。

QString path = "./user.ini";
QSettings *config = new QSettings(path, QSettings::IniFormat);

//用户名base64加密
QString uidsec = userNameLEd -> text();
QByteArray uidb64 = uidsec.toLocal8Bit().toBase64();
QString uid = QString::fromLocal8Bit(uidb64);

//密码base64加密
QString pwdsec = pwdLEd -> text();
QByteArray pwdb64 = pwdsec.toLocal8Bit().toBase64();
QString pwd = QString::fromLocal8Bit(pwdb64);

//将信息写入配置文件
config -> beginGroup("config");
config -> setValue("uid", uid);
config -> setValue("pwd", pwd);
config -> endGroup();

按钮链接以上槽函数。

connect(loginBtn,&QPushButton::clicked,this,&Activation::activation);

之后执行程序,会在可执行程序同级目录下生成user.ini 配置文件,打开以后可以看到如下内容。
配置文件
这里用户名和密码都是base64加密过的。

  1. 登录

绘制注册页。同样的两个QLineEdit和一个按钮。
登录页
然后,编写按钮的槽函数,读取本地的配置文件,并判断用户名和密码输入是否正确。

QString path = "./user.ini";
QSettings *config = new QSettings(path, QSettings::IniFormat);

//读取用户配置信息
QString uidsec = config -> value(QString("config/") + "uid").toString();
QByteArray uidb64 = QByteArray::fromBase64(uidsec.toLocal8Bit());
QString uid = QString::fromLocal8Bit(uidb64);

QString pwdsec = config -> value(QString("config/") + "pwd").toString();
QByteArray pwdb64 = QByteArray::fromBase64(pwdsec.toLocal8Bit());
QString pwd = QString::fromLocal8Bit(pwdb64);

if(uid == userNameLEd -> text() && pwd == pwdLEd -> text())
{
    accept();

    //验证成功,跳转到homepage页面
    this -> close();
    Homepage *home = new Homepage();
    home -> show();
}
else
{
    QMessageBox::warning(this,tr("警告!"),tr("用户名或密码错误!"),QMessageBox::Yes);

    //清空输入框内容
    userNameLEd -> clear();
    pwdLEd -> clear();

    //光标定位
    userNameLEd -> setFocus();
}

按钮链接以上槽函数。

connect(loginBtn,&QPushButton::clicked,this,&Login::login);

这样,通过配置文件实现用户的注册和验证就实现了(๑ `▽´๑) ​​​

QSettings保存配置文件这一操作非常实用。除了登录外,还可以保存用户在页面中的设置,例如默认时间、按钮的默认开关等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值