界面1头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include<QDebug>
#include<QWidget>
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
signals:
void my_signal();
void my_signal2();
void my_signal3();
void my_signal4();
void jump();
private slots:
void my_signal_1_slot();
// void my_signal_2_slot();
void on_btn1_clicked();
void on_btn2_clicked();
void on_quesIconBtn_clicked();
void on_quesIconBtn2_clicked();
void on_quesIconBtn3_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
界面2头文件
#ifndef FORM_H
#define FORM_H
#include <QWidget>
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = nullptr);
~Form();
public slots:
void jump_slot() //用于接受跳转的槽函数
{
this->show();
}
private:
Ui::Form *ui;
};
#endif // FORM_H
界面1源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowIcon(QIcon(":/C:/Users/DELL/Desktop/20240911170047.jpg"));
connect(this,&MainWindow::my_signal,this,&MainWindow::on_quesIconBtn2_clicked);
connect(this,&MainWindow::my_signal2,this,&MainWindow::on_quesIconBtn_clicked);
connect(this,&MainWindow::my_signal3,this,&MainWindow::MainWindow::my_signal_1_slot);
connect(this,&MainWindow::my_signal4,this,&MainWindow::on_quesIconBtn3_clicked);
// connect(this,&MainWindow::my_signal2,this,&MainWindow::my_signal_2_slot);
}
void MainWindow::on_quesIconBtn_clicked()
{
//1、实例化一个消息对话框的对象
QMessageBox box(QMessageBox::Question, //图标,问题图标
"问题", //对话框标题
"是否退出", //对话框文本内容
QMessageBox::Ok|QMessageBox::No, //对话框提供的按钮
this); //父组件
//2、调用函数设置相关属性
box.setButtonText(QMessageBox::Ok, "yes");
box.setButtonText(QMessageBox::No, "no");
box.setDefaultButton(QMessageBox::No);
//3、显示对话框:并返回用户点击的那个按钮值
int btn = box.exec();
//4、判断用户点击的按钮值
if(btn == QMessageBox::Ok)
{
this->close();
box.close();
}
}
void MainWindow::on_quesIconBtn2_clicked()
{
//1、实例化一个消息对话框的对象
QMessageBox box(QMessageBox::Question, //图标,问题图标
"信息", //对话框标题
"登录成功", //对话框文本内容
QMessageBox::Ok, //对话框提供的按钮
this); //父组件
//2、调用函数设置相关属性
box.setButtonText(QMessageBox::Ok, "yes");
box.setDefaultButton(QMessageBox::Ok);
//3、显示对话框:并返回用户点击的那个按钮值
int btn = box.exec();
//4、判断用户点击的按钮值
if(btn == QMessageBox::Ok)
{
this->close();
box.close();
emit my_signal3();
}
}
void MainWindow::on_quesIconBtn3_clicked()
{
//直接调用静态成员函数来完成对话框的调用
int btn = QMessageBox::warning(this, //父组件
"错误", //对话框标题
"账号密码不匹配", //对话框文本
QMessageBox::Ok|QMessageBox::No, //提供的按钮
QMessageBox::No); //默认按钮
//2、对用户点击的按钮进行判断
if(btn == QMessageBox::Ok)
{
ui->lineEdit_2->setText("");
}else if(btn==QMessageBox::No)
{
this->close();
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btn1_clicked()
{
qDebug()<<"按钮1被按下";
if(ui->lineEdit->text()==ui->lineEdit_2->text())
{
emit my_signal();
}
else
{
emit my_signal4();
}
}
void MainWindow::my_signal_1_slot()
{
emit jump();
}
//void MainWindow::my_signal_2_slot(int a)
//{
// ui->label->setNum(a);
//}
void MainWindow::on_btn2_clicked()
{
emit my_signal2();
}
界面2源文件
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
}
Form::~Form()
{
delete ui;
}
main文件
#include "mainwindow.h"
#include"form.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Form s;
QObject::connect(&w, &MainWindow::jump, &s, &Form::jump_slot);
return a.exec();
}