我是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 中对组件的声明,我相信问题的一部分是针对 Comprobant 的委托(delegate)
最佳答案
您可以在 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)
}
关于javascript - 是否可以将信号从 javascript 连接到 qml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647604/