Отправляет email-рассылки с помощью сервиса Sendsay
Открытая группа
27 участников
Администратор Legotckoi
Модератор ProgrammersBlog

Последние откомментированные темы:

20250426212219

←  Предыдущая тема Все темы Следующая тема →
пишет:

QML - Урок 034. Передача структур данных из C++ слоя приложения в QML слой

QMLQtMetaQ_INVOKABLE

Один из несомненных плюсов QML в Qt состоит в том, что он позволяет достаточно резко отделять backend-логику от интерфейса приложения. То есть весь backend мы пишем на C++, а в QML лишь отображаем необходимый результат.

При этом мы также можем и внутреннюю логику написать чисто на QML, минимизировав наличие C++ кода, или наоборот прописать дизайн некоторых элементов в C++, воспользовавшись возможностями OpenGL . Несмотря на разграничение QML и C++ частей кода на backend иfrontend приложения, мы не имеем каких-либо больших ограничений.

Но иногда возникает необходимость передать некоторую структуру данных, которая будет нести несколько полей с информацией, в QML часть кода. Например такую структуру.

  1. struct Structure
  2. {
  3. int m_number;
  4. QString m_message;
  5. };

Просто так такую структуру не получиться передать в QML и первое, что приходит на ум, это сделать сигнал sendToQml , который будет высылать несколько аргументов. Каждый аргумент будет отвечать за определённое поле структуры.

void sendToQml(int number, QString message);

Этот сигнал будет располагаться в вашем классе, который будет отправлять в QML определённую информацию с номерами, сообщениями и т.д. Минус подобного подхода очевиден, поскольку таких полей может быть очень много и будет глупо делать сигнал с парой десятков аргументов. Подобный подход будет полезен для пересылки небольшой информации, но никак не для структур данных.

Читать далее

Это интересно
0

04.12.2017
Пожаловаться Просмотров: 498  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены