1.QT Creator安装
下载直接点击安装,注意点:
(1)要注册QT公司的账号才能登陆,密码包含三种不同类型字符;;
(2) 在 菜单栏->工具 ->构建与运行 修改编译路经./%{CurrentBuild:Name};
(3)在 菜单栏->工具 添加源码Src文件。
2.登录系统实现-在线考试系统开发
(1)设计界面:
①标题修改代码
LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent) , ui(new Ui::LoginDialog) { ui->setupUi(this); // ui->imgLabel->setScaledContents(true); // this->resize(ui->imgLabel->width(),ui->imgLabel->height()); this->setWindowTitle("驾校考试系统-考试登录"); //设置标题 this->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); //对话窗风格和取消? this->setFixedSize(width(),height()); //设置窗口固定,不然可以拖动大小 }
②密码隐藏:设计界面点击密码插件,属性ecodeMode;
③登录流程:
1)先验证是否合法邮箱,正则表达式: account.txt账号文件拷贝到把项目目录下:
if(邮箱合法) { 嵌套1开始
打开文件、创建字符流
if(打开文件成功) { 嵌套2开始
while(字符流没到结尾) { 嵌套3开始
一次接受一行;
if(账号正确) { 嵌套4开始
if(密码正确) { 嵌套5开始
成功登陆、return
} else { 嵌套5结束
密码输入错误
}
} else { 嵌套5结束
账号输入错误
}
} else { 嵌套4结束
账号不存在;督导文件末尾了
}
} else { 嵌套2结束
打开文件失败、关闭
}
} else { 嵌套1结束
输出邮箱不合法,清空+聚焦+重输
}
void LoginDialog::on_loginBtn_clicked() //槽方法 { //^规则字符串开始,$规则字符串结束,+匹配次数>=1,*表示匹配任意次数,{n,m}表示匹配至少n,至多m QRegExp rx("^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$"); bool res = rx.exactMatch(ui->accountEdit->text());//匹配返回值 if(!res) {//正则表达式匹配合法邮箱,不加多余空格 QMessageBox::information(this,"提示","非法邮箱地址,请您重新输入!"); ui->accountEdit->clear(); //清空 ui->accountEdit->setFocus(); //聚焦 return ; } else { //邮箱合法了 //QMessageBox::information(this,"提示","欢迎登陆考试系统!"); /***************************///账号验证开始 QString filename; QString strAccInput; //用户输入账号 QString strCode; //用户输入密码 QString strLine; //每一行读取的数据 QStringList strList; //字符串链表,保存分割后的账号、密码 filename = "../account.txt"; strAccInput = ui->accountEdit->text(); strCode = ui->codeEdit->text(); QFile file(filename); //创建文件 QTextStream stream(&file); //文本类型打开 if(file.open(QIODevice::ReadOnly | QIODevice::Text)) //纯文本、只读 { while(!stream.atEnd()) //字符流没有到文件末尾 { strLine = stream.readLine(); //读一行 strList = strLine.split(","); //逗号分割结果 if(strAccInput == strList.at(0)) //账号对了 { if(strCode == strList.at(1)) //密码也对了 { QMessageBox::information(this,"提示","欢迎进入考试!"); return ; } else { QMessageBox::information(this,"提示","输入密码错误,请重新输入!"); ui->codeEdit->clear(); ui->codeEdit->setFocus(); file.close(); return ; } } // 账号对了结束 } //能打开文件,反复读文件直到结束 QMessageBox::information(this,"提示","您输入的账号有误,请重新输入!"); ui->accountEdit->clear(); ui->codeEdit->clear(); ui->accountEdit->setFocus(); file.close(); return; } else //文件打开失败 { QMessageBox::information(this,"提示","读取账号数据文件失败!"); return ; } /***************************///账号验证结束 } }
2)添加背景图片:
图片考到项目文件、项目添加新文件->QT、QTsource
出现的前缀改为/,在添加拷贝到项目目录的文件即可;
图片添加到Text里面:在text里选择pixmap->三个点的图标即可添加;
3)头文件:
#include "QFile" file对象
#include "QTextStream" stream对象