gpt4 book ai didi

qt - qml文件在qrc和本地路径之间切换

转载 作者:行者123 更新时间:2023-12-01 09:49:20 24 4
gpt4 key购买 nike

据我所知,qml 文件可以从本地目录路径加载,也可以捆绑在 qrc 文件中并使用 qrc:/URI 加载。在调试阶段更改本地 qml 文件不需要重新编译 qrc 文件并与主可执行文件链接在一起,这是尝试和错误微调的快速过程。但是在部署阶段,qml 文件应该捆绑在一起作为 qrc 文件并链接到主 C++ Qt 应用程序。当您想要单个可执行文件时,这是一种很好的做法,但是编译 qrc 文件并再次链接它对于大型项目来说非常耗时。有什么办法可以切换到 qrc 或本地目录吗?例如在调试和 Release模式?

项目中有许多 qml 组件,所有这些组件都是由 URI 创建的,例如 qrc:/componenentname.qml 在另一个 qml 文件中。

那么有没有办法在调试和 Release模式下交换这两种状态,并保持qml文件没有重复更改?

最佳答案

QML 中的所有 URL,如果没有完整指定,都是相对于当前文件的。

例如。如果 QML 文件有这样的内容

Image {
source: "images/foo.png"
}

然后在运行时根据 QML 文件本身的基本 URL 构造图像的完整 URL。

IE。如果 QML 文件本身是 qrc://main.qml那么结果路径是 qrc://images/foo.png , 如果 QML 文件本身是 file:///path/to/your/project/main.qml那么得到的图像源是 file:///path/to/your/project/image/foo.png .

因此,如果您在 QML 中的使用中保持 URL 相对,您可以在加载主 QML 文件时简单地在资源和本地文件之间切换。
QUrl mainFile = localMode ? QUrl::fromLocalFile("main.qml") : QUrl("qrc://main.qml")

QQuickView view;
view.setSource(mainFile);

关于qt - qml文件在qrc和本地路径之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41319293/

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