Как получить QList <QVariantMap>через dbus в qt 4.8? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть код C ++, который связывается с другим процессом, который возвращает список отображений строки-> варианта, другими словами a QList<QVariantMap>. В QT5 я могу выполнить демаршалл QDbusArgument reply следующим образом:

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

Это не работает с QT4.8. Я подозреваю, что мне нужен правильный вызов qDbusRegisterMetaType, но, как бы я ни пытался, я не могу понять комбинацию маги c. Компилятор отвечает:

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

К сожалению, наша кодовая база пока застряла на QT4.8, поэтому обновление до QT5 невозможно.

Как мне сделать то же самое в qt4

1 Ответ

0 голосов
/ 21 февраля 2020

Коллега помог мне. Ответ заключается в том, чтобы поместить это в заголовочный файл.

Q_DECLARE_METATYPE (QList<QVariantMap>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...