Kevin‘s notes about Qt---Episode 2 线程通信
前言
目前,通过前两次的操作,已经将原先工程中的基本功能在Qt中进行了分部实现。要想实现后续的功能,需要将采集卡线程中获取的数据在机械臂线程中进行处理与使用。例如我写的两个线程分别来自于两个类,而有一个变量需要在这两个线程中分别被赋值、调用,并且在一个头文件中创建的变量也无法被另一个源文件调用。
通过查阅资料可知,Qt中的变量需要使用信号和槽机制进行线程间通信。
感觉主要还是用法上需要注意各个部分放置的位置,第一次用可能还不是很熟悉,只要参照这样的格式用熟练即可,废话不多说,直接上代码。
Demo Qt Project
以发送两个变量为例,更多/更少以此类推。
发送部分
dataGenerated.h
发送/产生数据线程的头文件中添加如下代码:
class data_generate : QThread
{Q_OBJECT// ---------------- 需要添加的部分 ----------------
signals:void dataGenerated(double value0, double value1);}
dataGenerated.cpp
假设最终处理完成并准备发送的变量为double data0, double data1,在该线程源文件中添加如下代