gpt4 book ai didi

qt - 在qml中使用createComponent但是状态总是报错

转载 作者:行者123 更新时间:2023-12-05 00:58:22 26 4
gpt4 key购买 nike

当我使用 Qt.createComponent要动态创建组件,stutas 总是 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 File not found"



如果我设置了 MyPage.qml的完整路径, 我得到一个 Network error .

当我添加 SeriesSelectionPage.qml文件到资源文件,它的工作原理。但它不应该是动态的吗?

我只是想找一个QML文件,在应用程序执行的时候动态加载,这样应用程序就可以根据用户的操作加载不同的QML了。

有谁知道怎么做?我要疯了。

最佳答案

Qt.createComponent() 需要一个 url作为它的第一个论点。来自 url documentation :

The url type refers to a resource locator (like a file name, for example). It can be either absolute, e.g. "http://qt-project.org", or relative, e.g. "pics/logo.png". A relative URL is resolved relative to the URL of the containing component.



因此,只要您在从 QRC 加载的文件中使用相对 URL。文件,您需要使用 qrc方案:
var component = Qt.createComponent("qrc:/MyPage.qml");

关于qt - 在qml中使用createComponent但是状态总是报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com