Название: Проблема с созданием модели данных на чистом QML Отправлено: navrocky от Май 16, 2014, 11:37 Попытался сделать простую модель данных на чистом QML, сразу столкнулся с несколькими трудностями. Забегая вперед хочу поинтересоваться как кто решал эту проблему, если вообще пытался?
1. Она должна быть синглтоном, как его создать в QML? Сейчас сделал отдельный stateless JS файл и там создал объект модели таким образом: DataModel.js Код: var component = Qt.createComponent("FavoritesModel.qml"); Соответственно в коде использую так: Код: import "DataModel.js" as Model Тут вроде бы всё хорошо, но не работает кододополнялка в редакторе вообще. 2. Модель объявил так: FavoritesModel.js Код: import QtQuick 2.0 Лаконично и красиво. С ListView вроде бы работает как полагается. Но возникла проблема с сохранением данных в локальное хранилище. 3. Сохранение в локальное хранилище: Сперва хотел использовать для этой цели Settings (Qt.labs.settings 1.0), т.к. оно по идее имеется в QtCore и никаких жирностей дополнительно не тащится. Но попытка объявить объект Settings внутри объекта модели сразу приводит к неработоспособности, выдается ошибка: QQmlComponent: Component is not ready. Пляски с бубном не помогли. Надо только объявлять Settings в другом файле, руками формировать свойства и присваивать их из модели в Settings. В общем не очень красиво, и сразу увеличивает количество кода. Вариант с QtQuick.LocalSettings мне тоже не нравится, нет вообще никакой декларативности, надо писать SQL запросы, апдейтить схему БД, тащится жирный sqlite на все платформы включая телефонные и опять таки много кода.. Вот этот пункт самый геморройный получается и очень меня удручает. Название: Re: Проблема с созданием модели данных на чистом QML Отправлено: NKovalev64 от Май 20, 2014, 23:08 Просто не нужно делать модели на js\qml - и проблемы не будет!
О балансе QML vs C++ можно послушать\посмотреть здесь: http://tech.yandex.ru/events/yagosti/cpp-user-group/talks/1792/ Название: Re: Проблема с созданием модели данных на чистом QML Отправлено: navrocky от Май 24, 2014, 18:37 Проблему с Settings я победил, и все вроде бы ок. Но, в итоге, остановился на плюсовой реализации модели, как-то комфортнее писать, больше возможностей по работе с типами.
Но есть такие области (всякие плазмоиды), когда надо модель городить в QML и это можно сделать как показала практика. |