Genven_Liang的博客

学习记录

QT 简单的QT用户登录界面

                                    简单的QT用户登录界面

一、简单描述

    在登录界面输入用户名和密码正确之后才进入欢迎界面。

二、效果

   


三、工程文件结构


四、源文件

1、LoginForm02.pro文件

QT += widgets gui

SOURCES += \
    main.cpp \
    mainform.cpp \
    loginform.cpp

HEADERS += \
    mainform.h \
    loginform.h

2、loginform.h文件

#ifndef LOGINFORM_H
#define LOGINFORM_H

#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>


class LoginForm : public QDialog
{
    Q_OBJECT //使用信号与槽需要的宏
public:
    explicit LoginForm(QDialog *parent = 0);  //explicit 防止歧义

signals:

public slots:
    void login();//点击登录按钮是执行的槽函数
private:
    QLabel *userNameLbl;         //"用户名"标签
    QLabel *pwdLbl;              //"密码"标签
    QLineEdit *userNameLEd;      //用户名编辑行
    QLineEdit *pwdLEd;           //密码编辑行
    QPushButton *loginBtn;       //登录按钮
    QPushButton *exitBtn;        //退出按钮
};

#endif // LOGINFORM_H

3、mainform.h文件

#ifndef MAINFORM_H
#define MAINFORM_H

#include <QMainWindow>
#include <QLabel>
class MainForm : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainForm(QWidget *parent = 0);

signals:

public slots:
private:
    QLabel *tipLbl;  //"欢迎登录"标签
};

#endif // MAINFORM_H


4、loginform.cpp文件

#include "loginform.h"
#include <QMessageBox>

LoginForm::LoginForm(QDialog *parent) :
    QDialog(parent)
{
    //设置窗体标题
    this->setWindowTitle(tr("登录界面"));

    //用户名Label
    userNameLbl = new QLabel(this);   //new一个标签对象
    userNameLbl->move(70,80);         //移动到(70,80)位置(Label左上角坐标,相对于父窗体)
    userNameLbl->setText("用户名:");  //设置标签文本

    //用户名输入框
    userNameLEd = new QLineEdit(this);
    userNameLEd->move(120,80);
    userNameLEd->setPlaceholderText(tr("请输入用户名!"));//占位符

    //密码Label
    pwdLbl = new QLabel(this);
    pwdLbl->move(80,130);
    pwdLbl->setText("密码:");

    //密码输入框
    pwdLEd = new QLineEdit(this);
    pwdLEd->move(120,130);
    pwdLEd->setPlaceholderText("请输入密码!");
    pwdLEd->setEchoMode(QLineEdit::Password);//输入的密码以圆点显示

    //登录按钮
    loginBtn = new QPushButton(this);
    loginBtn->move(80,200);
    loginBtn->setText("登录");

    //退出按钮
    exitBtn = new QPushButton(this);
    exitBtn->move(170,200);
    exitBtn->setText("退出");

    //单击登录按钮时 执行 LoginForm::login 槽函数(自定义);单击退出按钮时 执行 LoginForm::close 槽函数(窗体的关闭函数,不用自己写)
    connect(loginBtn,&QPushButton::clicked,this,&LoginForm::login);
    connect(exitBtn,&QPushButton::clicked,this,&LoginForm::close);


}

void LoginForm::login()
{
    //获得userNameLEd输入框的文本:userNameLEd->text();
    //trimmed()去掉前后空格
    //tr()函数,防止设置中文时乱码
    if(userNameLEd->text().trimmed() == tr("liang") && pwdLEd->text() == tr("123456"))
    {
       accept();//关闭窗体,并设置返回值为Accepted
    } 
    else 
    {                              //标题              内容                OK按钮  
       QMessageBox::warning(this, tr("警告!"),tr("用户名或密码错误!"),QMessageBox::Yes);
       
	// 清空输入框内容
       userNameLEd->clear();
       pwdLEd->clear();

       //光标定位
       userNameLEd->setFocus();
    }
}

5、main.cpp文件

#include <QApplication>
#include "mainform.h"
#include "loginform.h"

int main(int argc,char** argv)
{
    QApplication app(argc,argv);
    MainForm *main = new MainForm();
    main->setWindowTitle("欢迎界面");//设置窗体标题

    LoginForm login;
    if (login.exec() == QDialog::Accepted)//调用login.exec(),阻塞主控制流,直到完成返回,继续执行主控制流
    {
       main->show();
       return app.exec();
    }
    else return 0;
}

6、mainform.cpp文件

#include "mainform.h"

MainForm::MainForm(QWidget *parent) :
    QMainWindow(parent)
{
    tipLbl = new QLabel(this);
    tipLbl->setText(tr("欢迎登录"));
}

阅读更多
文章标签: QT简单界面
个人分类: QT
上一篇栈帧
下一篇计算表达式(一)
想对作者说点什么? 我来说一句

QT做一个简单登录界面

2017年06月18日 16.53MB 下载

Qt简易登陆界面的实现

2014年04月17日 211KB 下载

没有更多推荐了,返回首页

关闭
关闭