Bonjour,
Dans la doc de QDbusArgument, il est écrit
"If the type you want to demarshall is a QMap or QHash, you need not declare an operator>> function for it, since QtDBus provides generic templates to do the job of demarshalling the data."
Or j'ai un type QMap<QString, QString>, que j'ai mis dans un typedef MapStringString, puis Q_DECLARE_METATYPE(MapStringString) et qDBusRegisterMetaType<MapStringString>();
dans le xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <method name="getAccountDetails"> <arg type="s" name="accountID" direction="in"/> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> <arg type="a{ss}" name="details" direction="out"/> </method>
pourtant, quand je faisle make me renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 QDBusReply<MapStringString> r1 = server->getAccountDetails("233327782"); MapStringString m1; r1 >> m1;
Est-ce que l'opérateur est vraiment défini ou il faut faire autre chose pour le déclarer??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ConfigDialog.cpp:19: erreur: no match for operator>> in r1 >> m1 /usr/include/qt4/QtCore/qchar.h:386: note: candidats sont: .....
Merci
Partager