微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 之系统登录对话框设计

之系统登录对话框设计

时间:10-02 整理:3721RD 点击:
  这里先设计一个关于环境信息采集系统登陆对话框,这部分整体比较简单,主要用到了widget这个窗口部件已经lable、Button、linedit相关控件。
首先我们需要通过Qt设计好UI如下




   这部分是不涉及到到吗的,这里每个控件都对应一个对象,下面我们就根绝设计好的Ui来编写相关代码

  1. #include "logindlg.h"
  2. #include "ui_logindlg.h"
  3. #include

  4. loginDlg::loginDlg(QWidget *parent) :
  5.     QDialog(parent),
  6.     ui(new Ui::loginDlg)
  7. {
  8.     ui->setupUi(this);
  9.     ui->pwdLineEdit->setEchoMode(QLineEdit::Password);//密码变为*号
  10. }

  11. loginDlg::~loginDlg()
  12. {
  13.     delete ui;
  14. }

  15. void loginDlg::on_loginBtn_clicked()
  16. {
  17.     if(ui->usrLineEdit->text().trimmed()==tr("qt")&&  //如果用户名、密码正确
  18.        ui->pwdLineEdit->text()==tr("123")        )
  19.     {
  20.         accept();
  21.     }
  22.     else                                              //如果用户名或密码不正确
  23.     {
  24.         QMessageBox::warning(this,tr("Warning"),
  25.                             tr("user name or password error !"),
  26.                             QMessageBox::Yes);
  27.         ui->usrLineEdit->clear();    //清空用户名输入框
  28.         ui->pwdLineEdit->clear();    //清空密码输入框
  29.         ui->usrLineEdit->setFocus(); //将光标转到用户名输入框
  30.     }

  31. }

复制代码


  对话框被封装到loginDlg这个类,当用户名和密码输入正确时,通过登陆按钮可以直接接入到主界面,如果出错则无法进入到主界面。

  1. #include
  2. #include "widget.h"
  3. #include "logindlg.h"

  4. int main(int argc, char *argv[])
  5. {
  6.     QApplication a(argc, argv);
  7.     Widget w;
  8.     loginDlg login;
  9.     if(login.exec()==QDialog::Accepted)
  10.     {

  11.         w.show();
  12.         return a.exec();
  13.     }
  14.     else return 0;
  15. }

复制代码

   也就是当检测到login.exec()==QDialog::Accepted我们便让他显示主界面,这里是以w.show为对象名进行测试的。


   上图左边是工程目录,右边是代码区,如果确定没什么问题我们点击构建运行即可,具体效果如下:





这里主要是完成登陆对话框的设计,后面需要通过交叉编译然(选择编译得到的qmake)后将产生的可执行文件放到板子上即可运行。关于环境信息采集主界面后面会给出,以及移植到Rico board上相关测试效果!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top