QT的学习信号与槽实现两个窗体的联通

#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    b1.setParent(this);
    b1.setText("切换到子窗口");
    b1.move(100,100);
    resize(400,400);
    connect(&b1,&QPushButton::pressed,this,&MyWidget::MySolt);
    //处理子窗口的信息
    void (SubWidget::*ptr)(int,QString)=&SubWidget::mySignal;
    connect(&m_cd,ptr,this,&MyWidget::SoltParam);

}

MyWidget::~MyWidget()
{
知识兔
#include "subwidget.h"SubWidget::SubWidget(QWidget *parent) : QWidget(parent){     b2.setParent(this);     b2.setText("切换到主窗口");     b2.move(100,100);     resize(400,400);     connect(&b2,&QPushButton::pressed,this,&SubWidget::MySolt);}SubWidget::~SubWidget(){}void SubWidget::MySolt(){    emit mySignal(250,"zhang");}
#ifndef MYWIDGET_H#define MYWIDGET_H#include <QWidget>#include <QPushButton>#include "subwidget.h"#include <QDebug>class MyWidget : public QWidget{    Q_OBJECTpublic:    MyWidget(QWidget *parent = nullptr);    ~MyWidget();    void MySolt();    void DealSolt();    void SoltParam(int a,QString str);private:    QPushButton b1;    SubWidget m_cd;};#endif // MYWIDGET_H
#ifndef SUBWIDGET_H#define SUBWIDGET_H#include <QWidget>#include <QPushButton>class SubWidget : public QWidget{    Q_OBJECTpublic:    explicit SubWidget(QWidget *parent = nullptr);    ~SubWidget();signals:    /*     * 信号必须由这个关键字来声明     * 信号没有返回值,但是可以修改     * 信号就是函数的声明,只需声明,无须定义     * 使用:emit mySignal();     * 可以有参数,怎么接受?     */    void mySignal(int a,QString str);public slots:    void MySolt();private:    QPushButton b2;};#endif // SUBWIDGET_H
}void MyWidget::MySolt(){ m_cd.show(); this->hide();}void MyWidget::SoltParam(int a,QString str){   qDebug() <<a<<str.toUtf8().data();}void MyWidget::DealSolt(){    this->show();    m_cd.hide();}
计算机