是否可以将信号从javascript连接到qml?

时间:2013-09-05 23:34:55

标签: javascript qml

我是qt和qml中的菜鸟,我的问题是我有一个main.qml,这里我导入了很多组件,其中一个叫做HeaderConcept,在这个组件中我做了一个数学函数,我希望通过这个结果导致其他组件qml,由于各种原因我不能使用别名传递结果,然后我的问题是我是否可以使用javascript将结果传递给其他qml文件,每次我调用HeaderConcept中的数学函数示例从javascript调用qml中的函数,或者最好使用C ++代码。 因为我的组件而不使用别名属性的原因之一是CollapsiblePanel,并且保持在其他组件内部。我接受任何提示或回答。

    ComprobantDelegate
    {
        id: comprobantCase

        //property alias totalOfVaucher: comprobant.totalOfVaucher
        //color: "#939393"; radius: 2; border.width: 1; border.color: "#716f6f"
    }

    ListModel {
        id: displaySettingsComprobant
        ListElement { }
    }


    CollapsiblePanel
    {
        id: panelComprobant
        width: 520
        height: parent.height
        titleText: "Datos Comprobante"
        customModel: displaySettingsComprobant
        customDelegate: comprobantCase
    }

这是我在main.qml中的组件声明,我相信问题的一部分是为了Compopeant的代表

1 个答案:

答案 0 :(得分:2)

您可以在HeaderConcept组件中声明一个信号,然后在数学函数完成时发出它:

HeaderConcept {
   signal mathDone(int result)
   ...

   function math() {
      // math part here
      mathDone(result)
   }
}

在main.qml中导入时:

HeaderConcept {
    id: hc
}

SomeOtherComponent {
    ...

    function headerConceptMathHandler(mathResult) {
        // your handling code
    }

    Component.onCompleted: hc.mathDone.connect(headerConceptMathHandler)
}