Qt Android. QML уроки #11. Разработка QML Data Mapper - Аналог QDataWidgetMapper

preview_player
Показать описание

В видео демонстрируется и описывается работа класса QmlDataMapper, который является аналогом QDataWidgetMapper.
Но в отличие от QDataWidgetMapper, данный класс может работать c объектами класса QQuickItem для реализации функционала QDataWidgetMapper, но в отношении объектов QML.

Добавление объектов QQuickItem в объект QmlDataMapper производится в программном коде QML.

Qml Data Mapper является результатом портирования аналогичного класса из фреймворка Cascades для native разработки под BlackBerry посредством QML Qt.
Рекомендации по теме
Комментарии
Автор

В mappedControlAt довольно опасный код. Тут важно понимать, что происходит и всегда держать это в голове, что не особо хорошо.
1) Макрос foreach создаёт копию контейнера -> mapping существует только в пределах блока кода;
2) При возвращении QObject* из слота или Q_INVOKABLE в слой QML ему установится JavaScriptOwnership, что значит, как только на него пропадут все ссылки в QML, а в мире C++ ему не был установлен parent, он будет удалён движком QML-я;
3) Да-да. Ссылки и указатели оставшиеся в плюсах станут протухшими.

vladimirkurman