简单的QT用户登录界面
一、简单描述
在登录界面输入用户名和密码正确之后才进入欢迎界面。
例子打包:链接: https://pan.baidu.com/s/1HEpNFghMDrBguMt93aRJ_A 提取码: bg4n
二、效果
三、工程文件结构
四、源文件
1、LoginForm02.pro文件
QT += widgets guiSOURCES += \main.cpp \mainform.cpp \loginform.cppHEADERS += \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("登录界面"));//用户名LabeluserNameLbl = new QLabel(this); //new一个标签对象userNameLbl->move(70,80); //移动到(70,80)位置(Label左上角坐标,相对于父窗体)userNameLbl->setText("用户名:"); //设置标签文本//用户名输入框userNameLEd = new QLineEdit(this);userNameLEd->move(120,80);userNameLEd->setPlaceholderText(tr("请输入用户名!"));//占位符//密码LabelpwdLbl = 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("欢迎登录"));
}