实现目标
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
再创建一个用户
登录,选择记住用户名登录``查看配置文件
再次启动程序,自动读取配置文件