关于QT多个.cpp文件内容交互

本文介绍了在QT项目中使用信号与槽机制进行数据传递以及通过公有成员函数访问私有变量两种数据交互方式,以确保线程安全并提升代码组织性。

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

在学习QT的过程中不免随着项目的扩大,业务需求的增多,需要添加多个类文件便于计算。在计算的过程中就需要源文件之间的数据交互。

常用的数据交互方法有以下几种

1.通过QT独有的信号与槽机制完成数据的传送。

2.在建立对象的同时加入公有函数来访问类内私有变量。

3.在对象内部完成一系列复杂逻辑计算后通过设置返回值,在另一个源文件中新建局部/全局变量进行接受即可(方法简单不做过多概述)

首先第一种方法:

通过信号与槽进行传递,QT独有的信号与槽机制可以保证线程安全性,操作简单。例如下面创建一个Data类来完成数据的传递。

注意:Data类要想实现信号与槽必须继承QObject类,类内声明Q_OBJECT宏。

//头文件中进行声明
class Data : public QObject
{
    Q_OBJECT

    
public:
//一般在构造函数中进行私有变量的初始化,在析构函数中进行delete操作
    Data();
    ~Data();
    void GenerateData();
signals:
    void SendData(int sendnum);
private:
    int m_num;
}


//源文件中进行类内实现

void Data::GenerateData()
{
    int num=0;
    
    num+=20;
//假设要传递num的值给主程序读取。
    emit SendData(num);

}

接下来演示主函数的槽函数命令获取子函数的num;

//MainWindow里的部分头文件内容
namespace Ui {
class MainWindow;
}

class MainWin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值