Qt Signals and Slots 发送结构数组
Qt Signals and Slots sending arrays of structures
我希望发送大小不同的数据(取决于跟踪标记的数量)。我有一个结构,旨在保存一个标记的所有信息。然后我需要通过信号和槽将其发送到另一个线程进行处理。我已经为该结构添加了必要的元类型声明。我已经正确连接了所有的信号和槽,并且所有的东西都适用于一个结构。但是,当我尝试发送标记数组时,信号不是 sent/recieved。为什么我只能发送结构的单个实例而不是它们的数组,即使结构本身包含一个数组?
我试过信号和插槽定义,例如:
老虎机:
void update(Datastruct output[])
和
信号:
void updatemarkers(Datastruct&)
这是我的结构:
#ifndef RETURNSTRUCT_H
#define RETURNSTRUCT_H
struct Datastruct
{
int markerid;
double markererror;
double markertrans[3];
double markerrotation[3][3];
};
Q_DECLARE_METATYPE(Datastruct);
#endif //RETURNSTRUCT_H
还包含此行以避免使用类型声明推断命名空间。
// after QApplication was instantiated
qRegisterMetaType<Datastruct>("Datastruct");
// but before any class is instantiated that connects signals with this type
为什么我只能发送结构的单个实例而不是它们的数组,即使结构本身包含一个数组?
我正在使用 windows 7、MinGW 32 位、Qt 5.7.0、Qt Creator 4.0.3
我希望发送大小不同的数据(取决于跟踪标记的数量)。我有一个结构,旨在保存一个标记的所有信息。然后我需要通过信号和槽将其发送到另一个线程进行处理。我已经为该结构添加了必要的元类型声明。我已经正确连接了所有的信号和槽,并且所有的东西都适用于一个结构。但是,当我尝试发送标记数组时,信号不是 sent/recieved。为什么我只能发送结构的单个实例而不是它们的数组,即使结构本身包含一个数组?
我试过信号和插槽定义,例如:
老虎机:
void update(Datastruct output[])
和 信号:
void updatemarkers(Datastruct&)
这是我的结构:
#ifndef RETURNSTRUCT_H
#define RETURNSTRUCT_H
struct Datastruct
{
int markerid;
double markererror;
double markertrans[3];
double markerrotation[3][3];
};
Q_DECLARE_METATYPE(Datastruct);
#endif //RETURNSTRUCT_H
还包含此行以避免使用类型声明推断命名空间。
// after QApplication was instantiated
qRegisterMetaType<Datastruct>("Datastruct");
// but before any class is instantiated that connects signals with this type
为什么我只能发送结构的单个实例而不是它们的数组,即使结构本身包含一个数组?
我正在使用 windows 7、MinGW 32 位、Qt 5.7.0、Qt Creator 4.0.3