我在Qt中使用qbusxml2cpp工具将xml转换为cpp类。我使用下面的命令转换名为nm-device.xml的xml文件(我从网络管理器包v0.9.8.8获取此xml文件)
qdbusxml2cpp -v -c Devices -p Devices.h:Devices.cpp nm-device.xml
但我收到错误,这是输出:
得知未知类型`(uu)'你应该添加name =“org.qtproject.QtDBus.QtTypeName”value =“< type>”/>到XML描述
我也在谷歌搜索,我知道(uu)是一个结构,我需要将下面的行添加到xml文件
name =“org.qtproject.QtDBus.QtTypeName”value =“< type>”/>
问题是我应该在我的情况下使用什么类型?
答案 0 :(得分:1)
我认为没有专门封装两个uint32字段的Qt类型,因此您可能需要创建自定义类型并注册它。
您可以在这里查看教程的https://techbase.kde.org/Development/Tutorials/D-Bus/CustomTypes#Edit_the_XML部分,该部分正在注册一个名为" Message"的自定义类型。并相应地修改XML文件。
答案 1 :(得分:1)
我刚刚找到了解决方案。它是
<annotation name="org.qtproject.QtDBus.QtTypeName" value="DeviceDBusStateReason"/>