Мне нужно создать приложение QML со страницами элементов, которые определяются XML-файлом. Xml должен быть проанализирован на C++. Каждая страница элементов будет страницей StackView, содержащей ListView элементов. Каждый элемент на странице имеет несколько значений, определяющих текст, цвет, размер и т. Д.Показать различные уровни модели DOM C++ в разных представлениях QML
Вначале мое создание модели DOM основано на примере модели Qt Simple DOM. Модель завернута в QAbstractItemModel. Я выставил модель C++ для QML, используя rootContext-> setContextProperty. Я борюсь с разделением данных между страницами StackView. Я предполагаю, что мне нужно назначить разные уровни иерархической модели (родительских и дочерних элементов страницы) различным UserRoles, чтобы отфильтровать их в представлениях QML, но я изо всех сил пытаюсь найти подходящие примеры того, как это сделать.
Так что мой вопрос:
Может ли вы показать мне пример назначения UserRoles к ++ DOM Model C и связанному с ним способом передачи данных для возвращения данных элемента по UserRole и иерархического уровня?
или
Собираюсь ли я в неправильном направлении, и есть лучший способ для достижения этой цели?
Почему с помощью XML? QML-файлы - это структурированный документ в текстовом файле, таком как XML, вы не можете использовать его напрямую? Если вы хотите использовать xml, почему бы вам не использовать элемент XmlListModel QML для чтения XML непосредственно в QML? – gbdivers
@Guillaume Дополнительная функциональность, требуемая позже, включает проверку файла определения при загрузке по схеме, а также модификацию и запись файла. Поэтому модель DOM выглядит как наилучшая подгонка - XmlListModel предоставляет модель только для чтения. –