1、在vs中创建一个新项目,添加类,并进行窗口界面设计,具体设计结果如下图:
(1)以上是主窗口的界面设计,如上图。
(2)子窗口界面设计,如上图。
(3)上面的图,是第二个子窗口的界面设计。
2、进入vs中,进行代码编辑。具体如下:
(1)demo1.h文件内容如下:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_demo1.h"
#include "new_windows.h"
#include "Newwindows2.h"
class demo1 : public QMainWindow
{
Q_OBJECT
public:
demo1(QWidget *parent = Q_NULLPTR);
private:
Ui::demo1Class ui;
new_windows *new_win;
private slots:
void onpushButton();
};
(2)demo1.cpp文件代码如下:
#include "demo1.h"
demo1::demo1(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onpushButton()));
}
void demo1::onpushButton()
{
new_win = new new_windows(); //将类指针实例化
new_win->show();
}
(3)new_windows.cpp文件代码如下(第一个子窗口,与主窗口的按钮有连接)
#include "new_windows.h"
QString t1, t2, t3, t4, t5, t6; //定义全局变量
new_windows::new_windows(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onpushButton()));
connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(onpushButton_2()));
}
new_windows::~new_windows()
{
}
void new_windows::onpushButton()
{
this->close();
}
void new_windows::onpushButton_2()
{
t1.clear();
t1 = ui.lineEdit->text();
t1.append('\n');
t1.append(ui.lineEdit_2->text());
t1.append('\n');
t1.append(ui.comboBox->currentText());
t2.clear();
t2.append('\n');
t2.append(ui.lineEdit_3->text());
t2.append('\n');
t2.append(ui.lineEdit_4->text());
t2.append('\n');
t2.append(ui.lineEdit_5->text());
t3.clear();
t3.append('\n');
t3.append(ui.comboBox_2->currentText());
t3.append('\n');
t3.append(ui.comboBox_3->currentText());
t3.append('\n');
t3.append(ui.comboBox_4->currentText());
t3.append('\n');
t4.clear();
t4.append(ui.lineEdit_6->text());
t4.append('\n');
t4.append(ui.lineEdit_7->text());
t4.append('\n');
t4.append(ui.lineEdit_8->text());
t4.append('\n');
t5.clear();
t5.append(ui.comboBox_5->currentText());
t5.append('\n');
t5.append(ui.comboBox_6->currentText());
t5.append('\n');
t5.append(ui.comboBox_7->currentText());
t5.append('\n');
t6.clear();
t6.append(ui.comboBox_8->currentText());
t6.append('\n');
new_win2 = new Newwindows2(); //将类指针实例化
new_win2->show();
}
(4)new_windows.h文件代码如下:
#pragma once
#include <QWidget>
#include "ui_new_windows.h"
#include "Newwindows2.h"
class new_windows : public QWidget
{
Q_OBJECT
public:
new_windows(QWidget *parent = Q_NULLPTR);
~new_windows();
Newwindows2 *new_win2;
private:
Ui::new_windows ui;
private slots:
void onpushButton();
void onpushButton_2();
};
(5)Newwindows2.h文件代码如下:
#pragma once
#include <QWidget>
#include "ui_Newwindows2.h"
class Newwindows2 : public QWidget
{
Q_OBJECT
public:
Newwindows2(QWidget *parent = Q_NULLPTR);
~Newwindows2();
private:
Ui::Newwindows2 ui;
};
(6) Newwindows2.cpp文件代码如下:
#include "Newwindows2.h"
extern QString t1, t2, t3, t4, t5, t6;
Newwindows2::Newwindows2(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
ui.textEdit->insertPlainText(t1);
ui.textEdit_2->insertPlainText(t2);
ui.textEdit_3->insertPlainText(t3);
ui.textEdit_4->insertPlainText(t4);
ui.textEdit_5->insertPlainText(t5);
ui.textEdit_6->insertPlainText(t6);
}
Newwindows2::~Newwindows2()
{
}
3、程序运行结果如下: