main.cpp
#include "widget.h"
#include "second.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
Second s;
QObject::connect(&w,&Widget::jump_signal,&s,&Second::jump_slot);
return a.exec();
}
second.cpp
#include "second.h"
#include "ui_second.h"
Second::Second(QWidget *parent) :
QWidget(parent),
ui(new Ui::Second)
{
ui->setupUi(this);
ui->label_4->setPixmap(QPixmap(":/Logo/ikun.jpg"));
ui->label_4->setScaledContents(true);
}
Second::~Second()
{
delete ui;
}
void Second::jump_slot()
{
this->show();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);//去掉白框
//登录按钮信号与槽函数
connect(this,&Widget::login_signal,this,&Widget::login_slot);
//取消按钮信号与槽函数
connect(this,&Widget::cancel_signal,this,&Widget::cancel_slot);
}
Widget::~Widget()
{
delete ui;
}
void Widget::login_slot()
{
if(ui->lineEdit->text() == "zhangqian" && ui->lineEdit_2->text() == "123456")
{
QMessageBox msg (QMessageBox::Information,
"Log in",
"登录成功!",
QMessageBox::Ok
);
int ret = msg.exec();
if(ret == QMessageBox::Ok)
{
this->close();
emit jump_signal();
}
}
else
{
QMessageBox msg (QMessageBox::Critical,
"Log in",
"账号或密码不匹配,是否重新登录?",
QMessageBox::Yes | QMessageBox::No
);
int ret = msg.exec();
if(ret == QMessageBox::Yes)
{
ui->lineEdit_2->clear();
}
else if(ret == QMessageBox::No)
{
this->close();
}
}
}
void Widget::cancel_slot()
{
QMessageBox msg (QMessageBox::Question,
"Log in",
"您是否确定要退出登录?",
QMessageBox::Yes | QMessageBox::No
);
int ret = msg.exec();
if(ret == QMessageBox::Yes)
{
this->close();
}
else if(ret == QMessageBox::No)
{
msg.close();
}
}
void Widget::on_LoginBtn_clicked()
{
emit login_signal();
}
void Widget::on_CancelBtn_clicked()
{
emit cancel_signal();
}