我想在Qt中发送一个带有信号的结构.我怎样才能做到这一点?我知道如何用信号发送整数,字符串,图像等,但与结构部分混淆.我读了一些帖子,发现了Q_DECLARE_METATYPE(),但我不明白如何使用它.
typedef struct
{
int EmpId;
QString Name;
} StandardData;
class Data::public QObject
{
Q_DECLARE_METATYPE(StandardData);
signals:
void SignalData(const StandardData &f_objStandardCan);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误1.非命名空间范围类中的显式特化.2.模板的专用化必须出现在命名空间范围3中.struct QMetaTypeId使用不同的访问权重新声明.有人可以告诉我哪里出错了.
错误是因为Q_DECLARE_METATYPE的使用在您的类声明中.它必须在任何类或名称空间之外.你只需要像这样移动它:
typedef struct
{
int EmpId;
QString Name;
} StandardData;
Q_DECLARE_METATYPE(StandardData);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4652 次 |
| 最近记录: |