Соединиться со всеми объектами QML, созданными с помощью одного вызова Qt.createComponent
Вопрос
Как создать компонент QML таким образом, чтобы все объекты, созданные компонентом, были связаны одинаково?
Например, я хотел бы triggered
сигнал всех объектов, созданных thirdPartyAPI
быть подключенным к onTriggered
слот:
function onTriggered() { }
thirdPartyAPI.factory = Qt.createComponent("Trigger.qml")
Зачем?
Я знаю, что могу создать компонент, затем создать объекты по компоненту, а затем параметризовать (подключить и установить свойства) каждый из созданных объектов.
Я использую сторонний API, который берет компонент и создает объекты внутри. У меня есть контроль над созданием компонента, но у меня нет доступа к Component.createObject
звонки (это внутри API).
Я хотел бы получить эффект, похожий на этот: (Я знаю, что нет newObjectCreated
сигнал на компонент)
var factory = Qt.createComponent(...)
factory.onNewObjectCreated: {
newInstance.triggered.connect(onTriggered)
}
1 ответ
Вы можете просто обернуть процедуру создания объекта в какую-нибудь общую функцию, например:
function createMyObject(component, parent, params)
{
var compo = Qt.createComponent(component);
var obj = compo.createObject(parent, params);
obj.customSignal.connect(onInstanceTriggered);
}