Доброго дня.
Никак не могу сообразить...
Первое: Есть некий клиент, который умеет соединяться, отсоединяться, писать, читать...в общем все как обычно.
В Qt коде я его регистрирую как тип, который потом можно использовать в QML.
qmlRegisterType<ClientType>( "my.test", 1, 0, "Client" );
Все работает. Из QML можно и соединяться и ловить сигналы.
Второе:
Этим клиентом пользуются некоторые другие сущности - классы-имплементации, которые пишут и читают в зависимости от своих нужд.
В С++ это выглядит вот как-то так
...
auto t = ITestImpl::create( client );
t->GetSomeData( );
...
Эти классы-имплементации я хочу тоже вынести как типы в QML. Но объекты этих классов всегда требуют наличие клиента.
Вопрос в этом: Как в QML такие ситуации правильно разруливать? Компоненты должны быть описаны в регионе клиента?
Client {
id: first
TestImpl {
...
}
}
или можно как-то передавать в качестве параметра в ID? (И как в этом случае должно выглядеть описание Q_PROPERTY?)
Client {
id: first
}
TestImpl {
...
clientId: first
}
Клиентов может быть не один.
И как в этих случаях из кода C++ получить клиента для определенного ITestImpl? (сигналы, слоты, данные...)
Спасибо.