问题
如何创建 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)
}
您可以将对象创建过程包装到一些常用函数中,例如:
function createMyObject(component, parent, params)
{
var compo = Qt.createComponent(component);
var obj = compo.createObject(parent, params);
obj.customSignal.connect(onInstanceTriggered);
}