QT 使用qtcreator编写第一个登录程序

今天我们使用QT 中的qtcreator编写第一个登录程序,具体步骤如下:

首先我们在vi 界面中使用qtcreator命令,进入creator 界面。

接着我们选择新建项目并设置文件路径和工程名字,其余默认(我们父窗口选择的是QDialog)

项目文件创建好了以后我们点击左侧项目文件中的.ui文件。编辑界面,效果如下:。

QT 使用qtcreator编写第一个登录程序_第1张图片

注:password的echomode 设置为 password  ,这样输入时不可见。

图形界面编辑好了以后我们来编写头文件和cpp文件。

先进行分析:

1.当我们点击Ok时,会对比用户名和密码是否正确,所以这里存在一个信号函数与槽函数。信号函数为我们点击ok产生的信号。槽函数为接受到该信号以后来进行用户名和账号的对比(这个函数我们自己来写)。

2.当我们点击cancel时,意味着取消登录,改程序直接结束。我们可以设置为当点击cancel时弹出窗口询问是否退出,是则退出,否则回到登录界面。

3.我们定义点击ok发送的信号为accepted(),对应槽函数为login_in();

  我们点击cancel按钮是发送的信号为rejected(),对应槽函数为login_out();

按上述编写头文件如下:

#ifndef LOGIN_H
#define LOGIN_H

#include 

namespace Ui {
class login;
}

class login : public QDialog
{
    Q_OBJECT

public:
    explicit login(QWidget *parent = 0);
    ~login();
public slots:                   //新增
    void login_in(void);	//新增
    void login_out(void);	//新增

private:
    Ui::login *ui;
};

#endif // LOGIN_H
新增的槽函数如以上代码:

接着我们编写.cpp文件

#include "login.h"
#include "ui_login.h"
#include 
login::login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);
    connect(ui->buttonBox,SIGNAL(accepted()),this,SLOT(login_in()));
    connect(ui->buttonBox,SIGNAL(rejected()),this,SLOT(login_out()));
}
void login::login_in(void){//登陆
    if(ui->name_deit->text() == "haha" && ui->password_edit->text() == "123456"){//密码正确
        QMessageBox msg1(QMessageBox::Information,windowTitle(),"login succeed!",QMessageBox::Ok,this);
        if(msg1.exec() == QMessageBox::Ok){
            close();
        }
    }else{//密码错误
        QMessageBox msg3(QMessageBox::Information,windowTitle(),"login failed",QMessageBox::Ok,this);
        msg3.exec();
    }
}
void login::login_out(void){//退出
    QMessageBox msg2(QMessageBox::Information,"login","Are you sure to quit",QMessageBox::Ok | QMessageBox::Cancel,this);
    if(msg2.exec() == QMessageBox::Ok){
        close();
    }
}
login::~login()
{
    delete ui;
}
最后运行结果如下:

QT 使用qtcreator编写第一个登录程序_第2张图片





你可能感兴趣的:(QT)