卷四:QT 第1篇 C++图形编程

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对象  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值