这个问题在我脑海里已经很多天了,但到目前为止我已经被清理了
如果我尝试发送结构信号说
struct radarStruct
{
unsigned char *Data;
unsigned int rate;
unsigned int timeStamp;
float timeSec;
};
我应该发出像
这样的信号signals:
void radarGeneratorData(const radarStruct &);
或
signals:
void radarGeneratorData(radarStruct *);
更多:无符号字符*数据怎么样,信号是否会对其进行深层复制?
类似于unsigned char *数据我如何发送信号。
朋友们请帮我清楚一下,通过信号发送结构的最佳方式&插槽机制..
事先提前
答案 0 :(得分:4)
这主要取决于您的要求。
如果要将结构发送到另一个对象并“共享”结构,则需要将结构作为指针发送,以便在源处反映更改。如果没有,那么你会希望将其作为const ref发送。
对于任何一种方法,记住你需要Q_DECLARE_METATYPE(YourStructType)
才能在signal / slot参数中使用该结构。
至于何时发生深拷贝/当例程回调等效进程发生时,您可以通读
单线程通信和交叉线程通信本身不同,输出将再次取决于您的使用情况。