写一个存储全局变量的类,用于多线程或多类之间的数据传递

在多线程或者多类的程序中,数据的传递要怎么实现?

我遇到的情况:在界面类中与电机通信,而我把电机通信放在了“伺服线程”,

那么,通过界面类发送 “读取电机速度” 信号后,写在主界面主线程的信号和槽函数connect()响应,

跳转到“伺服线程”的读取电机速度函数中,读取速度寄存器的值;

我的问题:界面类怎么获取读到的寄存器的值呢?

解决办法:写一个存储全局变量的类,用于多线程或多类之间的数据传递。

1. 新添加一个类:.h 和 .cpp

2. 在.h文件的public中声明全局变量:static + 数据类型 + 变量名;

 public:
    explicit share_data(QWidget *parent = nullptr);

    static uint16_t motor_speed;

3.在.cpp文件的函数外定义全局变量: 数据类型 + 类名:: + 变量名 = 0;

#include "share_data.h"

uint16_t share_data::motor_speed = 0;  //函数外部

4.在我需要使用的界面类和伺服线程的头文件中加入存储全局变量的类的头文件 #include “share_data.h”

5. 伺服线程中改变他的值 :类名:: + 变量名 = 赋值;

share_data::motor_speed = MotorSpeed;

6. 界面类中获取他的值:声明一个变量 = 类名:: + 变量名;

uint16_t motor_speed_1 = share_data::motor_speed;

查阅:

qt中全局变量的用法_天涯看雪的博客-CSDN博客_qt全局变量的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值