登录对话框 QDialog类型的。Login
login.h
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>
namespace Ui {
class Login;
}
class Login : public QDialog
{
Q_OBJECT
public:
explicit Login(QWidget *parent = 0);
~Login();
private slots:
void on_exit_clicked();
private:
Ui::Login *ui;
};
#endif // LOGIN_H
login.cpp
#include "login.h"
#include "ui_login.h"
#include <QMessageBox>
Login::Login(QWidget *parent) :
QDialog(parent),
ui(new Ui::Login)
{
ui->setupUi(this);
this->setFixedSize(195, 210);
connect(ui->login, &QPushButton::clicked, [=]()
{ //登录按钮被点击
QString name = ui->userID->text();
QString pwd = ui->pwd->text();
if(name.isEmpty() == true)
{
QMessageBox::warning(this, "ueername", "用户名不能为空!");
return;
}
if(pwd.isEmpty() == true)
{
QMessageBox::warning(this, "pwd", "密码不能为空!");
return;
}
if((name != "itcast") || (pwd != "itcast"))
{
QMessageBox::critical(this, "error", "用户名或密码输入错误!");
return;
}
// 接受: 模态对话框结束
this->accept();
// QDialog::accept(); // QDialog::Accepted
});
}
Login::~Login()
{
delete ui;
}
void Login::on_exit_clicked()
{
// 拒绝
// QDialog::Rejected
QDialog::reject();
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "login.h" //登录对话框
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Login login; // 登录对话框对象
if(QDialog::Accepted == login.exec())
{
// 登陆成功:主窗口对象显示
MainWindow w;
w.show();
return a.exec();
}
else
{
return 0; // 取消登录
}
}