我正在使用加载程序加载另一个qml文件,并且在加载该文件之后,我尝试设置它的组件。问题是qml无法识别组件名称,因为它在另一个文件中定义。
我知道我是否使它可以识别并使用加载程序加载它的组件。但是我要尝试的是尝试使用加载程序从另一个文件加载组件。请帮助我,谢谢。
Inside main.qml
MouseArea {
anchors.fill: parent
onClicked: {
display.visible = false
loader.source = "second.qml"
loader.sourceComponent = secondcomp
}
}
second.qml
import QtQuick 2.0
Component {
id : secondcomp
Rectangle{
id : display
x: 0
y: 100
visible: true
width: 100
height: 100
color: "red"
}
}
答案 0 :(得分:0)
通过将secondcomp设置为属性并使其成为别名以在其他文件中使用
Item{
id : main
property alias secondcomp: secondcomp
Component {
id : secondcomp
Rectangle{
id : display
signal message(string msg)
x: 400
y: 400
visible: true
width: 100
height: 100
color: "red"
}
}
MouseArea {
anchors.fill: parent
onClicked: secondcomp.message("clicked!")
}
}
并制作main.qml
MouseArea {
anchors.fill: parent
onClicked: {
display.visible = false
loader.source = "second.qml"
loader.sourceComponent = loader.item.secondcomp
}
}