连接到通过单个 Qt.createComponent 调用创建的所有 QML 对象

问题描述 投票:0回答:1

问题

如何创建 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)
}
qt qml components createobject
1个回答
0
投票

您可以将对象创建过程包装到一些常用函数中,例如:

function createMyObject(component, parent, params)
{
    var compo = Qt.createComponent(component);
    var obj = compo.createObject(parent, params);
    obj.customSignal.connect(onInstanceTriggered);
}
© www.soinside.com 2019 - 2024. All rights reserved.