Qt+SQLite3仿百度登录
2023-09-11 14:18:26 时间
实现目标
Qt Creater创建项目工程
设计UI界面
添加资源文件
设置前缀
添加文件
构建一下
添加完成
设计UI背景
将百度图片显示在Label上
设置整体背景为白色
头部设计
修改用户密码登录标签
修改样式表
设置单选框的样式表
设置密码框和账号框
这里为了方便观察,所以将echoMode设置为Normal
同理账号密码框
第一次编译效果
代码编写
添加数据库模块
创建数据库并打开
//创建数据库连接句柄
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
//设置数据库名称,用户名,密码
db.setDatabaseName("my.db");
//打开数据库
if(!db.open()){
qDebug()<<db.lastError().text();//输出错误信息
}
//创建表格
QString sql="create table if not exists user(id interger primary key autoincrement,"
"username varchar(256) unique,password varchar(256))";
QSqlQuery query;
if(!query.exec(sql)){
qDebug()<<query.lastError().text();
}
注册功能
void Login_BaiDu::on_registBt_clicked()
{
QString username=ui->username->text();
QString password=ui->password->text();
//打包sql语句
QString sql=QString("insert into user(username,password) values('%1','%2')").arg(username).arg(password);
//执行sql语句
QSqlQuery query;
if(query.exec(sql)){
qDebug()<<"注册失败";
QMessageBox::warning(this,"注册","注册失败");
qDebug()<<query.lastError().text();
return;
}
qDebug()<<"注册成功";
QMessageBox::warning(this,"注册","注册成功");
return;
}
登录功能
//登录
void Login_BaiDu::on_loginBt_clicked()
{
//获取值
QString username=ui->username->text();
QString password=ui->password->text();
//打包sql语句
QString sql=QString("select * from user where username='%1' and password='%2'").arg(username).arg(password);
//执行sql语句
QSqlQuery query;
if(!query.exec(sql)){
qDebug()<<query.lastError().text();
}
//查看是否有数据返回
if(query.next()){//指向第一条数据
QMessageBox::warning(this,"登录","登陆成功");
//记录用户名到配置文件
if(ui->checkBox->isChecked()){
//获取配置文件对象
QSettings setting(QSettings::IniFormat,QSettings::SystemScope,"config_BaiDu"); //设置配置文件保存在C:/programer_data中
setting.setValue("username",username);
setting.setValue("password",password);
}
}else{
QMessageBox::warning(this,"登录","登陆失败");
}
return;
}
记住密码
效果展示
数据库创建
注册用户
再次注册就会提示错误,因为username设置为了unique
再创建一个用户
登录,选择记住用户名登录``查看配置文件
再次启动程序,自动读取配置文件
源码
相关文章
- Qt-qt creator 运行 出现 "can not open .... jom for write 解决方案
- QT-Qt图片按钮类
- QT-Qt组件QTimer使用方法
- Qt-char*与QString互转 floatToqstring char*与QString互转 qt字符串与字符串数组操作 Qt 的QString类的使用
- QT Creator有中文出现“常量中有换行符 ”的解决办法
- s3c2410上搭建QT/Embedded4.8.5开发环境(二)--安装arm平台qt库qt-everywhere-opensource-src-4.8.5
- Qt实现FlatUI样式
- Qt编写音频播放示例(带音频曲线/振幅/传输/录制等)
- Qt编写物联网管理平台2-界面框架
- Qt编写地图综合应用15-添加删除清空重置点
- Qt OpenGL 混合
- Qt对话框
- QT多线程实战_Qt多线程开发项目
- qt操作json(QT 教程)
- Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例
- 【Qt】在ubuntu上为可执行程序qt创建图标(亲测)
- 【Qt】在ubuntu上安装qt的mqtt模块
- 2、QT基础——创建Qt项目
- Qt之opencv视频播放带进度条
- Qt中使用vlc-qt处理音视频
- Qt 单例模式的实现(4种方法)
- 解决Ubuntu系统安装QT出错的问题:qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it
- Qt:QRadioButton多选一
- Qt中信号形参值传递,引用传递,指针传递的不同
- Qt Quick 组件和动态创建的对象具体的解释
- qt交叉编译报错::-1: error: The Qt version is invalid: Qt version is not properly installed,please run make
- QT线程2 QSemaphore