第一个头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
#include <QMessageBox>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
signals:
void jump();
public slots:
void login();
private slots:
void on_exit_clicked();
};
#endif // MAINWINDOW_H
第一个源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->setPixmap(QPixmap(":/pictrue/logo.png"));
ui->label->setScaledContents(true);
ui->userNameLab->setPixmap(QPixmap(":/pictrue/userName.jpg"));
ui->userNameLab->setScaledContents(true);
ui->passwordLab->setPixmap(QPixmap(":/pictrue/passwd.jpg"));
ui->passwordLab->setScaledContents(true);
ui->userName->setPlaceholderText("手机号/邮箱");
ui->password->setEchoMode(QLineEdit::Password);
ui->password->setPlaceholderText("密码");
//用qt4连接版本连接login信号
connect(ui->login,SIGNAL(clicked()),this,SLOT(login()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::login()
{
if(ui->userName->text()=="admin" & ui->password->text()=="123456")
{
QMessageBox msg(QMessageBox::Question, //图标
"提示", //标题
"登陆成功", //文本
QMessageBox::Ok //按钮
);
//调用exec()弹出对话框
int ret = msg.exec();
//根据exec()函数的返回值,判断用户选中的按钮 执行不同功能
if(ret == QMessageBox::Ok)
{
this->close();
emit jump();
}
}
else
{
QMessageBox msg(QMessageBox::Warning, //图标
"错误", //标题
"账号和密码不匹配,是否重新登录", //文本
QMessageBox::Yes|QMessageBox::No //按钮
);
//调用exec()弹出对话框
int ret = msg.exec();
//根据exec()函数的返回值,判断用户选中的按钮 执行不同功能
if(ret == QMessageBox::Yes)
{
ui->password->clear();
}
if(ret == QMessageBox::No)
{
this->close();
}
}
}
void MainWindow::on_exit_clicked()
{
QMessageBox msg(QMessageBox::Question, //图标
"问题", //标题
"是否确定取消登录", //文本
QMessageBox::Yes|QMessageBox::No //按钮
);
//调用exec()弹出对话框
int ret = msg.exec();
//根据exec()函数的返回值,判断用户选中的按钮 执行不同功能
if(ret == QMessageBox::Yes)
{
this->close();
}
}
第二个头文件
#ifndef FORM_H
#define FORM_H
#include <QWidget>
#include <QMessageBox>
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = nullptr);
~Form();
private:
Ui::Form *ui;
public slots:
void jump_slot();
};
#endif // FORM_H
第二个源文件
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
}
Form::~Form()
{
delete ui;
}
void Form::jump_slot()
{
this->show();
}
主函数
#include "mainwindow.h"
#include "form.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
Form f;
w.show();
QObject::connect(&w,&MainWindow::jump,&f,&Form::jump_slot);
return a.exec();
}