我有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
一位同事帮助了我。答案是将其放在头文件中的某个位置。
Q_DECLARE_METATYPE (QList<QVariantMap>);