VS2015+Qt 主窗口与子窗口传值(通过全局变量)

这篇博客介绍了如何在Visual Studio中利用Qt创建主窗口和子窗口,并进行了UI设计。作者通过添加.ui文件,设计了包含lineEdit和label组件的界面,并通过全局变量实现子窗口对主窗口数据的接收与显示。在C++代码中,详细展示了信号与槽的连接,以及数据从一个窗口到另一个窗口的传递过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、打开vs,新建一个项目,双击.ui文件,进入UI设计器界面,进行主窗口的设计,设计结果如下:

 2、重新添加一个.ui文件,用于子窗口的设计(具体请参照往期创作的文章,这里不再赘述),设计结果如下图:添加一个label组件

3、在vs中添加相关代码,具体如下:

(1)在test4.h中,代码如下:

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_test4.h"
#include "NWindows.h"

class test4 : public QMainWindow
{
	Q_OBJECT

public:
	test4(QWidget *parent = Q_NULLPTR);
	NWindows *w;

private:
	Ui::test4Class ui;

	private slots:
	void onpushButton();
};

 (2)在test4.cpp中,代码如下:

#include "test4.h"
#include "ui_NWindows.h"


QString globaldata; //声明一个全局变量用于窗体间传值

test4::test4(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onpushButton()));
}

void test4::onpushButton()
{
	globaldata = ui.textEdit->toPlainText(); //获取lineEdit输入的值赋值给全局变量 
	NWindows *w = new NWindows;
	w->show();
}

(3)在NWindows.h中,代码如下:

#pragma once

#include <QWidget>
#include "ui_NWindows.h"

class NWindows : public QWidget
{
	Q_OBJECT

public:
	NWindows(QWidget *parent = Q_NULLPTR);
	~NWindows();

private:
	Ui::NWindows ui;
};

(4)在NWindows.cpp中,代码如下:

#include "NWindows.h"

extern QString globaldata; //声明外部变量 

NWindows::NWindows(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	ui.label->setText(globaldata); //对全局变量进行显示
}

NWindows::~NWindows()
{

}

4、运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值