#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#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 Welcome(QString &str);
void Welcome1(QString &str);
private slots:
void on_cbtn_clicked();
void Welcometest(QString &str);
void Welcometest1(QString &str);
void on_wbtn_clicked();
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
private:
Ui::MainWindow *ui;
QMetaObject::Connection m_ret;
};
#endif
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QtDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(this,SIGNAL(Welcome(QString &)),this,SLOT(Welcometest(QString &)));
connect(this,SIGNAL(Welcome(QString &)),this,SLOT(Welcometest1(QString &)));
m_ret = connect(this,SIGNAL(Welcome1(QString &)),this,SLOT(Welcometest1(QString &)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_cbtn_clicked()
{
QString str = "欢迎!";
emit Welcome(str);
emit Welcome1(str);
}
void MainWindow::Welcometest(QString &str)
{
QMessageBox::information(this,"提示",str);
}
void MainWindow::Welcometest1(QString &str)
{
qDebug() << str;
}
void MainWindow::on_wbtn_clicked()
{
QString str = "我干!";
emit Welcome(str);
}
void MainWindow::on_pushButton_clicked()
{
disconnect(m_ret);
qDebug() << "已断开一个信号和一个槽连接";
}
void MainWindow::on_pushButton_2_clicked()
{
disconnect(this,SIGNAL(Welcome(QString &)),0,0);
qDebug() << "已断开一个信号连接的所有槽连接";
}
void MainWindow::on_pushButton_3_clicked()
{
disconnect(this,0,this,0);
qDebug() << "已断开this发射的所有信号与this对象的所有槽连接";
}