BlinCT20 октября 2019 г. 8:11

Переключение режима в qml и получение разных данных из C++

Всем привет.
Нужен совет как правильно реализовать данное переключени.
Суть задачи такая:
В qml есть combobox в котором выбираются разные решимы.
Так же в qml есть поля, которые из C++ вытаскивают данные. Но исходя из выбранного режима в поля должны писатся данные из разных классов.
Структура примерно такая:
Base
Disk1
Disk2
Disk3
Есть класс который создает указатели для каждого диска, то есть там можно какой то контейнер иметь со всеми указателями(какого вида должен быть данный контейнер не знаю). Но Стоит ли как то данный контейнер с поинтерами юзать на стороне qml для переключения режимов я не знаю.
Так же есть в даннмо классе структура с именованием этих всех дисков. Может правильно использовать только именования эти в qml чтобы переключать?
Буду признателен за развернутый совет по данной реализации.
Спасибо всем.

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

Еще хотел добавить для ясности, наследники не имеют перегруженных методов от родителя. То есть у каждого наследника свои методы которые возвращают данные что я отображаю в qml

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

То есть если я правильно понимаю смысл реализации то примерно так должно быглядеть:
BaseAdapter (в котормо будут все методы для наследников)
Adapter1
Disk1
Adapret2
Disk2

так как режимы переключения это как раз переключение между возвратом значения метода name() то из класса Disk1 то из класса Disk2

попробуй сделать через свой собственный компонет , те возьми контрол Component, например , переорпедели как свой , в нем что нить типо проперти type : disk1, disk2 (сделай метод в структуре который возвращает текущий тайп )...
и на основании тайпа делай что хочешь

Комментарии

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

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
T

C++ - Тест 003. Условия и циклы

  • Результат:57баллов,
  • Очки рейтинга-2
TG

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

  • Результат:53баллов,
  • Очки рейтинга-4
TG

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

  • Результат:60баллов,
  • Очки рейтинга-1
Последние комментарии
t
  • t1m4
  • 23 января 2021 г. 8:28

Django - Урок 052. Переопределение модели пользователя

Добрый день, Я вот написал в admin.py admin.site.register(User, UserAdmin) Но у меня не появилось новые поля в админке?

Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Ошибка в конфиге инжинкса про статику в root последний слеш лишний путь в таком виде получается /home/user/myprojectenv/myproject/myproject//static

Qt/C++ - Урок 061. Добавление изображений в приложение методом Drag And Drop из файлового менеджера

// Вместо отрисовки иконки и текста будем отрисовывать только одно изображение // с небольшими отступами в 5 пикселей QPixmap pix(m_model->data(index).toString()); …
m
  • magrif
  • 19 января 2021 г. 12:37

Qt Сертификация

Здравствуйте. Подскажите, оплачивать ваучер прямо в выбранном тестовом центре? Можно ли загранник предъявить? Или свой паспорт, а заполнить транслитом? А то там пишут: Your name must exactl…
r
  • retmas
  • 17 января 2021 г. 4:09

Qt/C++ - Урок 074. Генерация псевдослучайных чисел с использованием случайной библиотеки STD

Дмитрий, решает. Просто автор, видимо, не сильно озаботился изучением документации QRandomGenerator. Да и в листинге с использованием qrand вызов функции qsrand на каждой итерации цикла нав…
Сейчас обсуждают на форуме
p

Как поменять шаг оси с числового формата на текстовый

онлайн казино Пин Ап официальный сайт играть на деньги или бесплатно без регистрации
S

Добавление данных в модель из textEdit

Котов писать жалко, да что поделать - приходится) Вот мне пока не шибко понятно как именно при внесении новых данных обновлять модель, как мне заставить TableView отображать обновленные дан…
F

QScrollArea dynamically add QCheckBoxes

http://dostavshik.ml/
ИП
T

AbstractListModel использование в нескольких элементах

Разобрался. Извиняюсь за беспокойство. Я просто не поставил "model." перед переменными. Делаю рефакторинг под abstractModel, раньше модель была в QML и как то прокатывала без этого. На железе уж…
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB