连接到通过单个 Qt.createComponent 调用创建的所有 QML 对象
Connect to all QML objects created via single Qt.createComponent call
问题
如何创建 QML 组件,使组件创建的所有对象都以相同的方式连接?
例如我希望 thirdPartyAPI
创建的所有对象的 triggered
信号连接到 onTriggered
插槽:
function onTriggered() { }
thirdPartyAPI.factory = Qt.createComponent("Trigger.qml")
为什么?
我知道我可以创建组件,然后通过组件创建对象,然后参数化(连接和设置属性)每个创建的对象。
我使用第 3 方 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);
}
问题
如何创建 QML 组件,使组件创建的所有对象都以相同的方式连接?
例如我希望 thirdPartyAPI
创建的所有对象的 triggered
信号连接到 onTriggered
插槽:
function onTriggered() { }
thirdPartyAPI.factory = Qt.createComponent("Trigger.qml")
为什么?
我知道我可以创建组件,然后通过组件创建对象,然后参数化(连接和设置属性)每个创建的对象。
我使用第 3 方 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);
}