20 октября 2019 г. 16:59

Получение из QMap значение в qml

Всем привет.
Имеется в С++ контейнер QMap, состоит из , и вот мне надо в qml получить не только структуру но и конкретное поле из структуры.
То есть я понимаю что надо через foreach прогнать контейнер но как это сделать и как обращатся в структуре к отдельным полям не пойму.
Может кто подсказать как это можно сделать?
Спасибо.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
6

Привет
По-моему, тут нужно QMap перегонять в QVariantMap , с которым нормально работает QML, а поиск нужной информации сделать через Q_INVOKABLE метод в C++ части, чтобы в итоге отдавать либо найденный объект, либо найденную информацию.

Я правильно понимаю что можно сразу не юзать QMap а уже складывать все в в QVariantMap? Просто получается что QMap тогда вообще не нужен.

смотря по ситуации, но исходя из выше сказаного, я бы утверждал, что "Да"

MP

Просто маленький совет. Я бы не стал смешивать логику на C++ и на qml. Получится спагетти-код. Подумайте стоит ли вообще передавать эти данные. Пишите больше на плюсах. Qml используйте для вёрстки. Лично я даже анимацию предпочитаю писать на плюсах. Так легче контролировать состояния, когда основной код на C++.

Да я понимаю что смешивать ен стоит. Вот и ищу вариант как это правильнее реализовать. Я думал что имея на стороне крестов структуры в которых находятся нужные мне обозначения передать эти поля в qml, и уже при переключении работать с нужными данными.
Так что я думаю передавать контейнер с данными из полей вроде правильное решение.
Если у вас есть какой то простйо пример подобной реализации буду признателен если покажите)

MP

Зависит от вашей задачи. Можете обратить внимание на этот пример:
https://doc.qt.io/qt-5/qtqml-referenceexamples-properties-example.html
QQmlListProperty используется мною достаточно часто. Либо можно передавать объект унаследованный от QAbstractItemModel. Есть и другие варианты:
https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Donate

Здравствуйте, уважаемые пользователи EVILEG !!!

Если сайт вам помог, то поддержите разработку сайта финансово, пожалуйста.

Вы можете сделать это следующими способами:

Спасибо, Евгений Легоцкой

О
18 ноября 2019 г. 15:54
Оксана

C++ - Тест 005. Структуры и Классы

  • Результат:66баллов,
  • Очки рейтинга-1
АГ
18 ноября 2019 г. 15:50
Антон Гурьев

C++ - Тест 001. Первая программа и типы данных

  • Результат:46баллов,
  • Очки рейтинга-6
VZ
17 ноября 2019 г. 2:25
Vladimir Zhitkovsky

Qt - Тест 001. Сигналы и слоты

  • Результат:78баллов,
  • Очки рейтинга2
Последние комментарии
c
18 ноября 2019 г. 6:27
cyberaxe77

Моих знаний пока явно недостаточно, чтобы писать статьи. Так...небольшие заметки "на полях"))).
18 ноября 2019 г. 6:10
Евгений Легоцкой

Пока что на сайте нет активных пользователей PyQt5, кто бы мог писать статьи по PyQt5, к сожалению. Лично я только для статей пользуюсь этой библиотекой. Но можете стать одним из первых ;) Любой…
18 ноября 2019 г. 2:44
Евгений Легоцкой

Добрый день. На тот момент ничего не использовал дополнительно и никаких специальных настроек не делал. Просто собрал и получилось 10 мб.
c
17 ноября 2019 г. 14:25
cyberaxe77

Шикарно! Как обычно всё объясняется чётко, ясно и, по-возможности, кратко. Побольше бы контента по PyQt5...
ГВ
16 ноября 2019 г. 16:16
Гибралтар Вольфрамов

Разрешите узнать, как вы получили qt+qml приложение размером в 10мб(даже релизных). Дело в том, что пустое приложение, хоть и со стек вью, обходится мне на все 40мб пространства. Или же вы воспо…
Сейчас обсуждают на форуме
19 ноября 2019 г. 5:50
Евгений Легоцкой

Попробуй переписать метод так Q_INVOKABLE void createNewGroup(QObject *grp); А в реализации делать каст на нужный класс, ну для начала хотя бы просто посмотреть, прилетел ли в дебаг хоть…
19 ноября 2019 г. 5:04
Евгений Легоцкой

label - это GUI элемент в данном случае? Если так, то я бы не стал раскидывать GUI элементы в разные потоки. Дело в том, что в документации на Qt, сказано, что GUI элементы работают только в GUI…
MP
19 ноября 2019 г. 4:13
Mikhail Petrov

Без разницы в дизайнере создается форма или не в дизайнере. Как вы добавляете в QTabWidget?
19 ноября 2019 г. 2:36
BlinCT

Всем привет. Если кто дебажил qml часть подскажиет пожалуйста, какие настрйоки требуются в Qt Creator? Я собирал 5.12.5 из исходников, в Настройкс в debugger у меня выставлен путь к со…
EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB