Я использую QML в первый раз, и мне трудно провести мой код, организованный между управляющим и бизнес-слоями.Контрольные и бизнес-уровни QML
В очень приземленным образом, все мои события должны быть направлены на уровень управления C++ (класс C++ называется MyController, который наследует от QObject). Теперь MyController должен знать о бизнес-слое (скажем, свой класс C++ под названием MyBusiness) и вызывать его соответствующие методы.
Мои MyBusiness на самом деле является сложной агрегацией классов более низкого уровня, которые я соединил в main.cpp.
Раньше я использовал QtWidget, и я был в состоянии создать MYBUSINESS с помощью этой сложной агрегации, упомянутой выше, создают MyController и обеспечить MyBusiness к MyController ему делать свою работу.
Теперь из-за пути QML о рабочих, MyController фактически подвергается QML (через регистрацию QML) и MyController Q_INVOKABLE функции вызываются из QML и в свою очередь должны вызова MyBusiness функции.
Но MyController теперь на самом деле создан в QML, так что я не буду больше не в состоянии позволить MyController знать о MYBUSINESS.
Какова наилучшая практика в моем случае?
Рассмотрите также публикацию синглэда C++ как Singleton QML, а затем прикрепление к нему явно в QML, например: MyController {business: MyBusiness; } '. – Velkan
Хорошая точка, спасибо! – arennuit