当我使用Qt.createComponent
动态创建组件时,状态总是Component.error
但我无法理解原因。
我是这样使用它的:
Rectangle{
function loadTest(){
function finishCreation() {
if (component.status === Component.Ready) {
console.log("ready")
} else if (component.status === Component.Error) {
// Error Handling
console.log("Error loading component:", component.errorString());
}
}
var component = Qt.createComponent("MyPage.qml");
console.log(component.status)
console.log("Error loading component:", component.errorString());
component.statusChanged.connect(finishCreation);
if (component.status === Component.Ready) {
var button = component.createObject(container);
console.log("ready")
}
}
Component.onCompleted: {
console.log("Completed Running!")
loadTest()
}
}
如果文件MyPage.qml
中不存在qrc
,则错误为
qrc:/MyPage.qml:-1 找不到文件”
如果我设置 的完整路径MyPage.qml
,我会得到一个Network error
.
当我将SeriesSelectionPage.qml
文件添加到资源文件时,它可以工作。但它不应该是动态的吗?
我只是想找一个QML文件,在应用执行的时候动态加载,这样应用就可以根据用户操作加载不同的QML。
有谁知道该怎么做?我要疯了。