尝试在 Tab 中调用 Item 的函数时出现 ReferenceError
ReferenceError while trying to call function of Item within Tab
我试图从另一个 qml 文件用户组件 ID 调用 qml 文件的函数,但我遇到了一些问题。有人可以帮我解决这个问题吗?
这是我的代码。
Browser.qml:
import QtQuick 2.0
Item {
function callme(message) {
console.log(message)
}
}
main.qml:
import QtQuick 2.3
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0
ApplicationWindow {
visible: true
width: 640
height: 100
TabView {
id: tabView
width: 640
height: 50
Tab {
width: 100
title: "Sample1.html"
onVisibleChanged: {
browser1.callme("hi")
}
Browser {
id: browser1
}
}
Tab {
width: 100
title: "Sample2.html"
onVisibleChanged: {
browser2.callme("bye")
}
Browser {
id: browser2
}
}
}
}
报告错误:
ReferenceError: browser1 is not defined
如果您想访问 Tab
控件中的项目,您必须使用它的 item
属性。我已经更改了您的信号处理程序并且它有效:
...
onVisibleChanged: {
item.callme("hi")
}
Browser{
id: browser1
}
...
Tab
控件继承自 Loader 组件。它以其 children 作为代表,并且它们仅在选项卡被激活时创建。大多数行为与 Loader
组件相同。
实验记录
如果我们在 Tab
中定义两个或多个组件会发生什么? Loader
组件仅接受委托,创建的组件由 item
属性 访问。 Tab
组件映射 children
属性 到 delegate
你可以定义多个,但我意识到 只创建了最后一个 child .
我试图从另一个 qml 文件用户组件 ID 调用 qml 文件的函数,但我遇到了一些问题。有人可以帮我解决这个问题吗? 这是我的代码。
Browser.qml:
import QtQuick 2.0
Item {
function callme(message) {
console.log(message)
}
}
main.qml:
import QtQuick 2.3
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0
ApplicationWindow {
visible: true
width: 640
height: 100
TabView {
id: tabView
width: 640
height: 50
Tab {
width: 100
title: "Sample1.html"
onVisibleChanged: {
browser1.callme("hi")
}
Browser {
id: browser1
}
}
Tab {
width: 100
title: "Sample2.html"
onVisibleChanged: {
browser2.callme("bye")
}
Browser {
id: browser2
}
}
}
}
报告错误:
ReferenceError: browser1 is not defined
如果您想访问 Tab
控件中的项目,您必须使用它的 item
属性。我已经更改了您的信号处理程序并且它有效:
...
onVisibleChanged: {
item.callme("hi")
}
Browser{
id: browser1
}
...
Tab
控件继承自 Loader 组件。它以其 children 作为代表,并且它们仅在选项卡被激活时创建。大多数行为与 Loader
组件相同。
实验记录
如果我们在 Tab
中定义两个或多个组件会发生什么? Loader
组件仅接受委托,创建的组件由 item
属性 访问。 Tab
组件映射 children
属性 到 delegate
你可以定义多个,但我意识到 只创建了最后一个 child .