Конвертировать 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"/>