我需要获取DBus接口(interface)的属性,所以我做了interface.property(name)
。那会返回一个QVariant,但是QVariant可以返回的映射只是QMap<QString, QVariant>
,而我需要QMap<QString, QDBusVariant>
。我该怎么办?
最佳答案
我认为您正在寻找此方法,因为没有固有和正确的QVariant::toQDBusVariant()
方法:
根据您的用例,您可以一次性重建 map ,也可以在旅途中将其转换为首选类型。无论哪种方式,您都可以使用如上例所示的这种机制:
QVariant myVariant;
...
QDBusVariant dbusVariant;
if (myVariant.canConvert<QDBusVariant>())
dbusVariant = myVariant.value<QDBusVariant>();
您还可以按照QDBusVariant示例所示进行操作:// retrieve the D-Bus variant
QDBusVariant dbusVariant = qvariant_cast<QDBusVariant>(v);
关于c++ - Qt DBus属性转换为 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27573550/