在QML中的TabView内调用另一个QML文件中的函数或属性

时间:2015-04-17 21:12:54

标签: qt qml qtquick2 tabview

我想从myFunc()致电PageA.qml中的main.qml(请参阅onClicked的{​​{1}}事件)。我尝试了一些属性别名的东西,但到目前为止还没有任何工作。有什么想法吗?

这是我的Button代码:

PageA.qml

这是我的import QtQuick 2.4 import QtQuick.Controls 1.2 Item { function myFunc() { /* ... */ } TextField { id: myText } }

main.qml

1 个答案:

答案 0 :(得分:3)

调用PageA中的函数的问题源于Tab不从Item继承,而是从Loader继承,因此直接函数调用如tabID.function() 1}}是不可能的。您需要item的{​​{1}}属性:

Tab

或者,您可以创建别名:

TabView {
    Tab {
        id: tabA // Give the tab an id
        title: "Tab A"
        PageA { }
    }
    // ...
}
Button {
    text: "click"
    onClicked: callMyFunc()
}

function callMyFunc() {
    tabA.item.myFunc() // Call the function myFunc() in PageA
}

但别名或别名或多或少是一种美容选择。