gpt4 book ai didi

c++ - 在 Qt 中将结构传递给信号

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:36 24 4
gpt4 key购买 nike

我想在 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);
}

我得到的错误1.非命名空间范围类的显式特化。2.模板特化必须出现在命名空间范围内3. struct QMetaTypeId 使用不同的访问权限重新声明。谁能告诉我哪里出错了。

最佳答案

错误是因为在类声明中使用了 Q_DECLARE_METATYPE。它必须在任何类或 namespace 之外。你只需要像这样移动它:

typedef struct
{
int EmpId;
QString Name;
} StandardData;

Q_DECLARE_METATYPE(StandardData);

关于c++ - 在 Qt 中将结构传递给信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com