Oct. 20, 2019, 7:11 a.m.

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

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
4

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

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

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

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

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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it
Donate

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways

PayPalYandex.Money
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting Timeweb
g
May 29, 2020, 2:32 p.m.
glushchenkoin

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:40points,
  • Rating points-8
AS
May 26, 2020, 11:29 a.m.
Artem Sun-Dun-Chan

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
MN
May 25, 2020, 11:33 a.m.
Mitja Nagibin

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
Last comments
May 29, 2020, 1 p.m.
Evgenij Legotskoj

Django - Tutorial 023. Like Dislike system using GenericForeignKey

Думал так, но похоже что нет. {{ post.votes.likes.user.username }} Это же QuerySet будет, а не отдельный единственный объект {% for vote in post.votes %} {{ vote.user.username …
May 29, 2020, 11:43 a.m.
Vladislav Melenchuk

Django - Tutorial 023. Like Dislike system using GenericForeignKey

А как получить имя пользователя, который поставил лайк? Думал так, но похоже что нет. {{ post.votes.likes.user.username }}
May 29, 2020, 6:30 a.m.
Evgenij Legotskoj

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

У меня работает. Исправлял в проекте, который приложен к статье. А что происходит в вашем коде, с учётом места вызова этого кода, я знать не могу ;) Дебажьте и добавляйте условия, кото…
MA
May 29, 2020, 6:27 a.m.
Mihail A

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

QModelIndexList rowIndexes = ui->tableView->selectionModel()->selectedRows(); model->removeRows(rowIndexes.first().row(), rowIndexes.size()); model-&…
Now discuss on the forum
May 31, 2020, 6:57 a.m.
Aleksej Vnukov

Минимальный размер Item

считайте по размеру включенных элементов, чтоб все помещалась. например у вас всего 2 кнопки, тогда минимальный размер итема будет ширина 1-й кнопки + ширина 2-й кнопки + отступы, и точно также …
f
May 31, 2020, 2:24 a.m.
fryn3

Можно ли сделать в QML таблицу как в Excel?

Можно ли сделать в QML таблицу как в Excel или как сделано в QTableView? Что бы можно было выделять диапазон ячеек, переключатся по таб, изменять размеры строк и столбцов. В QT 5.14 по…
S
RS
May 30, 2020, 11:49 a.m.
Ruslan Skljuev

QML Как при нажатии на кнопку изменить название окна?

У меня три файла: 1. QML - это Loader и Window 2. QML вход в программу - страница Loader (там есть Switch) 3. QML - MainMenu. Мне нужно в (1), чтобы если на (2) Switch.enable, то …
DK
May 29, 2020, 1:27 p.m.
Dzhon Kofi

QMap<> какой ключ лучше

это ясно. Вопрос в том, как быстро мапа будет отрабатывать, если ключом будет QModelIndex. Какой параметр индекса возьмет за ключ. И вот насколько это будет медленнее или быстрее, чем QString пр…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB