Конвертировать xml в cpp с помощью qdbusxml2cpp, получить ошибку неизвестного типа (uu)

Я использую инструмент qbusxml2cpp в Qt для преобразования xml в класс cpp. Я использую команду ниже для преобразования XML-файла с именем nm-device.xml (я получаю этот XML-файл из пакета сетевого менеджера v0.9.8.8)

qdbusxml2cpp -v -c Devices -p Devices.h:Devices.cpp nm-device.xml 

но я получаю ошибку, вот вывод:

Получил неизвестный тип `(uu) 'Вы должны добавить name =" org.qtproject.QtDBus.QtTypeName "value =""/> в описание XML

Я также ищу в Google, и я знаю (uu) это структура, и мне нужно добавить строку ниже в XML-файл

name = "org.qtproject.QtDBus.QtTypeName" value = "<тип>" />

Вопрос в том, какой тип я должен использовать в моей ситуации?

2 ответа

Я не думаю, что есть тип Qt, который специально инкапсулирует два поля uint32, поэтому вам, возможно, придется создать собственный тип и зарегистрировать его.

Вы можете посмотреть эту часть руководства здесь https://techbase.kde.org/Development/Tutorials/D-Bus/CustomTypes, которая регистрирует пользовательский тип с именем "Сообщение" и соответственно изменяет файл XML.

Я только что нашел свое решение. это

<annotation name="org.qtproject.QtDBus.QtTypeName" value="DeviceDBusStateReason"/>
Другие вопросы по тегам