gpt4 book ai didi

c++ - 如何将复杂数据打包到 QtDBus 回复中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:42 27 4
gpt4 key购买 nike

我必须在 Qt 中实现一个 DBus 服务,该服务必须返回符合给定规范的相当复杂的数据。数据本质上是一系列经过测试的映射、数组、结构和其他变体。

我找不到一种方便的方法将所有这些打包到我的方法的回复中。看来我应该可以为此使用 QDBusArgument 类。例如,要创建一个字符串数组,我应该可以这样做:

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

但这行不通。看来我需要煞费苦心地手动构建变体的 QList。当然有更好的方法吗?

最佳答案

我想这样的事情应该对你有帮助

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

Note: If you are working with custom types, you should use the Q_DECLARE_METATYPE() macro to register your custom type.

关于c++ - 如何将复杂数据打包到 QtDBus 回复中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10827749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com