信号发射结构

时间:2013-03-22 10:16:47

标签: qt qt-signals

这个问题在我脑海里已经很多天了,但到目前为止我已经被清理了

如果我尝试发送结构信号说

struct radarStruct
{
    unsigned char *Data;
    unsigned int rate;
    unsigned int timeStamp;
    float timeSec;
};

我应该发出像

这样的信号
signals:
    void radarGeneratorData(const radarStruct &);

signals:
    void radarGeneratorData(radarStruct *);

更多:无符号字符*数据怎么样,信号是否会对其进行深层复制?

类似于unsigned char *数据我如何发送信号。

朋友们请帮我清楚一下,通过信号发送结构的最佳方式&插槽机制..

事先提前

1 个答案:

答案 0 :(得分:4)

这主要取决于您的要求。

如果要将结构发送到另一个对象并“共享”结构,则需要将结构作为指针发送,以便在源处反映更改。如果没有,那么你会希望将其作为const ref发送。

对于任何一种方法,记住你需要Q_DECLARE_METATYPE(YourStructType)才能在signal / slot参数中使用该结构。

至于何时发生深拷贝/当例程回调等效进程发生时,您可以通读

Signaling failure in qt slots

单线程通信和交叉线程通信本身不同,输出将再次取决于您的使用情况。