2012-05-31 2 views
2

주어진 스펙을 따르는 상당히 복잡한 데이터를 리턴해야하는 Qt에서 DBus 서비스를 구현해야합니다. 데이터는 본질적으로 일련의 테스트를 거친 맵, 배열, 구조 및 기타 변형입니다.복잡한 데이터를 QtDBus 응답으로 묶는 방법은 무엇입니까?

내 방법의 답장에이 모든 것을 담을 수있는 편리한 방법을 찾을 수 없습니다. 이 경우 QDBusArgument 클래스를 사용할 수 있어야합니다. 예를 들어, 문자열 배열을 만들려면이 작업을 수행 할 수 있어야합니다.

QDBusArgument arg; 
arg.beginArray(qMetaTypeId<QString>()); 
arg << "Hello" << "World"; 
arg.endArray(); 
QVariant var = arg.asVariant(); 

하지만 작동하지 않습니다. 나는 수동으로 QList 변형을 수동으로 생성해야 할 것 같습니다. 확실히 더 좋은 방법이 있을까요?

답변

0

는이 같은 일이 당신에게

QDBusMessage msg = QDBusMessage::createSignal(...) 
QStringList strlist; 
strlist << "Hello" << "World"; 
msg << QVariant::fromValue(strlist); 
QDBusConnection::systemBus().send(msg); 

주를 도움이 될 것입니다 가정 : 사용자 정의 형식으로 작업하는 경우, 당신은 사용자 정의 유형을 등록하는 Q_DECLARE_METATYPE() 매크로를 사용하여야한다.

관련 문제