3
정수 배열을 반환해야하는 서비스 호출에서 값을 가져 오는 데 어려움이 있습니다.QDbus : Return to QList <int>
<method name="PurpleFindBuddies">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<int>"/>
<arg name="accountId" type="i" direction="in" />
<arg name="screenName" type="s" direction="in" />
<arg name="buddies" type="ai" direction="out" />
</method>
qdbusxml2cpp 다음 방법을 생성한다 : 상기 인터페이스 XML 파일의 메소드 호출로 정의
inline QDBusPendingReply<QList<int> > PurpleFindBuddies(int accountId, const QString &screenName)
{
QList<QVariant> argumentList;
argumentList << QVariant::fromValue(accountId) << QVariant::fromValue(screenName);
return asyncCallWithArgumentList(QLatin1String("PurpleFindBuddies"), argumentList);
}
제가 또한 생성의 상단
Q_DECLARE_METATYPE(QList<int>)
을 첨가 하였다. h 파일. 그리고 MAIN.CPP에, 나는 다음과 같은 호출
QDBusPendingReply<QList<int> > buddies = pidgin->PurpleFindBuddies(accountId, "[email protected]");
buddies.waitForFinished();
if (buddies.isError()) {
qDebug() << buddies.error();
return -1;
}
qDebug() << buddies.argumentAt(0).toList().size();
내가 프로그램을 실행하면, 나는 다음과 같이 내가 결과를 얻고 활성화 디버그 출력에서 볼 수 있습니다을하지만, qDebug() 라인있어 결과를 올바르게 검색하는 방법을 알 수 없습니다.
QDBusConnectionPrivate(0x138fbc0) got message reply (async): QDBusMessage(type=MethodReturn, service=":1.135", signature="ai", contents=([Argument: ai {859}]))
무엇이 누락 되었습니까? 어떤 도움이라도 대단히 감사하겠습니다.