Я впервые использую 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.
Какова наилучшая практика в моем случае?
MyController { business: MyBusiness; }
. - person Velkan   schedule 26.07.2016