我必须在Qt中实现一个DBus服务,该服务必须返回符合给定规范的相当复杂的数据。数据本质上是一系列经过测试的映射、数组、结构和其他变体。
我找不到一种方便的方法将所有这些都打包到我的方法的回复中。似乎我应该能够使用QDBusArgument类来完成这个任务。例如,要创建字符串数组,我应该能够这样做:
QDBusArgument arg;
arg.beginArray( qMetaTypeId<QString>());
arg << "Hello" << "World";
arg.endArray();
QVariant var = arg.asVariant();但这不管用。我似乎需要手工地构造变体的QList。肯定有更好的办法吗?
发布于 2013-01-17 14:19:57
我想像这样的东西应该能帮你
QDBusMessage msg = QDBusMessage::createSignal( ... )
QStringList strlist;
strlist << "Hello" << "World";
msg << QVariant::fromValue( strlist);
QDBusConnection::systemBus().send( msg );注意:如果使用自定义类型,则应使用Q_DECLARE_METATYPE()宏注册自定义类型.
https://stackoverflow.com/questions/10827749
复制相似问题