我如何通过Qt 4.8中的dbus接收QList ?] >> 我有C ++代码,可与另一个进程通信,该进程返回字符串->变量映射的列表,换句话说就是QList<QVariantMap>。在QT5中,我可以如下进行QDbusArgument reply的编组: QList<QVariantMap> replyMap = qdbus_cast<QList<QVariantMap>>(reply.arguments().first()); 这不适用于QT4.8。我怀疑我需要正确调用qDbusRegisterMetaType,但是我尝试尝试一下,但我无法弄清魔术组合。编译器响应: ..../include/QtCore/qmetatype.h:169:79: error: ‘qt_metatype_id’ is not a member of ‘QMetaTypeId<QList<QMap<QString, QVariant> > >’ 不幸的是,我们的代码库目前停留在QT4.8上,因此无法升级到QT5。 我如何在qt4中做同样的事情? 我有C ++代码,可与另一个进程通信,该进程返回字符串列表-> variant映射,换句话说,就是QList 。在QT5中,我可以将QDbusArgument答复为...

问题描述 投票:0回答:1

我有C ++代码,可与另一个进程通信,该进程返回字符串->变量映射的列表,换句话说就是QList<QVariantMap>。在QT5中,我可以如下进行QDbusArgument reply的编组:

    QList<QVariantMap> replyMap = qdbus_cast<QList<QVariantMap>>(reply.arguments().first());

这不适用于QT4.8。我怀疑我需要正确调用qDbusRegisterMetaType,但是我尝试尝试一下,但我无法弄清魔术组合。编译器响应:

..../include/QtCore/qmetatype.h:169:79: error: ‘qt_metatype_id’ is not a member of ‘QMetaTypeId<QList<QMap<QString, QVariant> > >’

不幸的是,我们的代码库目前停留在QT4.8上,因此无法升级到QT5。

我如何在qt4中做同样的事情?

我有C ++代码,可与另一个进程通信,该进程返回字符串列表-> variant映射,换句话说,就是QList 。在QT5中,我可以将QDbusArgument答复为...

qt qt4
1个回答
0
投票

一位同事帮助了我。答案是将其放在头文件中的某个位置。

Q_DECLARE_METATYPE (QList<QVariantMap>);
© www.soinside.com 2019 - 2024. All rights reserved.