登录窗口头文件
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include
- #include
- #include
- #include
- #include
- #include
- #include
//浮动窗口类 - #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow; }
- QT_END_NAMESPACE
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
- signals:
- void jump();
-
- public slots:
- void login_slot();
-
- private slots:
- void on_cancel_btn_clicked();
-
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
登录窗口主文件
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //窗口名
- this->setWindowTitle("QQ");
- this->setWindowIcon(QIcon(":/01login/icon/kun.webp"));
- this->setFixedSize(480,400);
- QMovie *kk=new QMovie(":/01login/icon/dance.gif");
- ui->logo_label->setMovie(kk);
- kk->start();
- ui->logo_label->setScaledContents(true);
- //账号密码图标
- ui->host_label->setPixmap(QPixmap(":/01login/icon/zhanghu.png"));
- ui->host_label->setScaledContents(true);
- ui->passwd_label->setPixmap(QPixmap(":/01login/icon/passwd.jpg"));
- ui->passwd_label->setScaledContents(true);
- //账号密码文本
- ui->host_edit->setPlaceholderText("账号");
- ui->passwd_edit->setPlaceholderText("密码");
- //连接登录跳转信号和槽函数
- connect(ui->login_btn,&QPushButton::clicked,this,&MainWindow::login_slot);
- }
- void MainWindow::login_slot()
- {
- QString usrname = ui->host_edit->text();
- QString pwd = ui->passwd_edit->text();
- if(usrname=="admin"&&pwd=="123456")//若账号密码正确
- {
- qDebug()<< "login success";
- //消息对话框
- QMessageBox msg(
- QMessageBox::Information,
- "通知",
- "登陆成功",
- QMessageBox::Ok,
- this);
- int ret = msg.exec();
- if(ret==QMessageBox::Ok)
- {
- this -> close();
- }
- //跳转到新页面
- emit jump();
- }
- else//若密码错误
- {
- qDebug()<< "login defeat";
- //基于属性弹出消息对话框
- QMessageBox msg(
- QMessageBox::Critical,
- "登录失败",
- "账号和密码不匹配,是否重新登录",
- QMessageBox::Yes|QMessageBox::No,
- this);
- int ret = msg.exec();
- if(ret==QMessageBox::Yes)//若yes则清空密码
- {
- ui -> passwd_edit->clear();
- }
- else//若no则直接关闭登录界面
- {
- this->close();
- }
-
- }
- }
- MainWindow::~MainWindow()
- {
- delete ui;
-
- }
-
-
- void MainWindow::on_cancel_btn_clicked()//取消
- {
- //基于静态成员函数消息对话框的弹出
- int ret = QMessageBox::question(
- this,
- "再次确认",
- "您是否确定要退出登录",
- QMessageBox::Yes|QMessageBox::No);
- if(ret==QMessageBox::Yes)//若yes则关闭登录界面
- {
- this->close();
- }
- else//若no则关闭对话框继续执行登录界面
- {
- }
- }
跳转页面头文件
- #ifndef SECOND_H
- #define SECOND_H
-
- #include
-
- namespace Ui {
- class second;
- }
-
- class second : public QWidget
- {
- Q_OBJECT
-
- public:
- explicit second(QWidget *parent = nullptr);
- ~second();
-
- public slots:
- void jumpslot();
- void sureslot();
-
- private:
- Ui::second *ui;
- };
-
- #endif // SECOND_H
跳转页面主文件
- #include "second.h"
- #include "ui_second.h"
-
- second::second(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::second)
- {
- ui->setupUi(this);
- connect(ui->sure_btn,&QPushButton::clicked,this,&second::sureslot);
- }
-
- second::~second()
- {
- delete ui;
- }
-
- void second::jumpslot()
- {
- this->show();
- }
- void second::sureslot()
- {
- this->close();
- }
主文件
- #include "mainwindow.h"
- #include "second.h"
- #include
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- second s;
- QObject::connect(&w,&MainWindow::jump,&s,&second::jumpslot);
-
- return a.exec();
- }