How to Call a Function That's Inside of a TabView
If you have a TabView in your QML file and you want to call a Tab’s function of that tab view, you might run into a problem If you try to call it directly
like you would any other function. This is because Tab does not inherit from Item, it inherits from Loader. So you would need the item property of the
Tab to call a function or acces a property of it.
Let’s say you have the following code in your QML file.
TabView {
Tab {
id: tabOne
SomeQMLObject {
id: myObject
function myFunc() {
console.log("Called it!");
}
}
}
}
Since Tab inherits Loader, the way you access the myFunc function is like this:
TabView {
id: tabView
Tab {
id: tabOne
SomeQMLObject {
id: myObject
function myFunc() {
console.log("Called it!");
}
}
}
}
Button {
text: "Click Me"
onClicked: tabOne.item.myFunc()
}
EDIT: @AkiHydway mentioned that Tab must be loaded, other wise item will be undefined, since it inherits Loader. And Tabs have lazy initialization, so it will not be loaded unless you specifically tell it to load or you activate the Tab by clicking on it. Thanks for the suggestion @AkiHydway!