1 //qqwidget.cpp
2 #include "qqwidget.h"
3 #include "ui_qqwidget.h"
4
5 qqwidget::qqwidget(QWidget *parent) :
6 QWidget(parent),
7 ui(new Ui::qqwidget)
8 {
9 ui->setupUi(this);
10
11 setWindowTitle("老大");
12 b.setParent(this);
13 b.setText("change");
14
15 connect(&b,&QPushButton::released,this,&qqwidget::myslot);
16
17 //处理子窗口信号
18 connect(&sub1,&sub::mysignal,this,&qqwidget::myslot2);
19
20 }
21
22 qqwidget::~qqwidget()
23 {
24 delete ui;
25 }
26 void qqwidget::myslot()
27 {
28 this->hide();
29 sub1.show();
30 }
31 void qqwidget::myslot2()
32 {
33 this->show();
34 sub1.hide();
35 }
36
37
38 //sub.cpp
39 #include "sub.h"
40
41 sub::sub(QWidget *parent) : QWidget(parent)
42 {
43 b1.setParent(this);
44 b1.setText("切换至主窗口");
45
46
47 connect(&b1,&QPushButton::released,this,&sub::mysubslot);
48 }
49
50 void sub::mysubslot()
51 {
52 emit mysignal();
53 }
54
55 //qqwidget.h
56 #ifndef QQWIDGET_H
57 #define QQWIDGET_H
58
59 #include <QWidget>
60 #include <QPushButton>
61 #include "sub.h"
62
63 namespace Ui {
64 class qqwidget;
65 }
66
67 class qqwidget : public QWidget
68 {
69 Q_OBJECT
70
71 public:
72 explicit qqwidget(QWidget *parent = nullptr);
73 ~qqwidget();
74 QPushButton b;
75 void myslot();
76 void myslot2();
77 sub sub1;
78
79 private:
80 Ui::qqwidget *ui;
81 };
82
83 #endif // QQWIDGET_H
84
85
86 //sub.h
87 #ifndef SUB_H
88 #define SUB_H
89
90 #include <QWidget>
91 #include <QPushButton>
92
93 class sub : public QWidget
94 {
95 Q_OBJECT
96 public:
97 explicit sub(QWidget *parent = nullptr);
98 QPushButton b1;
99 void mysubslot();
100 signals:
101 void mysignal();
102
103 public slots:
104 };
105
106 #endif // SUB_H