从另一个QML文件访问一个QML文件的属性,反之亦然

时间:2016-05-20 10:35:04

标签: qml qt5

我有两个QML文件。 PageOne.qml和PageTwo.qml。 我想从PageTwo.qml和PageOne.qml中的PageTwo.qml访问PageOne.qml中的元素属性和方法。 我可以通过包含

来访问PageTwo.qml中的PageOne.qml
PageOne{
    id: pageOne
}
在PageTwo.qml中

。一块蛋糕。

但是如果我添加

PageTwo{
    id: pageTwo
}

到PageOne.qml实现我的主要目标我的应用程序无法启动。我没有错。 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

只需将您的逻辑移至js文件并将其包含在两个qml文件中。

例如,您可以使用以下内容创建MyLogic.js:

.pragma library

function myPrettyComplexFunction(...)
{
    ...
}

稍后在您的qml文件中,您将包含并使用它:

import "MyLogic.js" as MyLogic
...
MyLogic.myPrettyComplexFunction(...)
...

答案 1 :(得分:0)

好吧,我在PageTwo.qml

中声明了一个函数
PageOne{
   id: pageOne
   function myfunc(arg){
        idOfAnElementInPageTwo.func(arg)
}

然后我从PageOne.qml调用了这个函数,它运行了!所以我需要明确定义在另一个文件中更改/调用方法的方法。