gpt4 book ai didi

qt - QML:如何指定相对于应用程序文件夹的图像文件路径

转载 作者:行者123 更新时间:2023-12-03 23:24:26 26 4
gpt4 key购买 nike

我们正在开发我们的第一个 Qt/QML 应用程序(尝试技术)。虽然技术乍一看非常有前途,但我们遇到了许多意想不到的奇怪问题,一开始就几乎放弃了。

这里是这样的问题之一。

我们的应用程序需要以下文件夹布局:

--> ApplicationFolder
|--> qml // QML files (also structured by subfolders)
|--> resources // Application resources (images, sounds, data-files, etc.)
| |--> images // Image resources (also structured by subfolders)
| |--> data // Different data files
| |--> ... // Other resources
|--> Application.exe // Application executable
|--> *.dll // DLLs application depends on

问题是为了为 Image指定图像文件QML 项我们必须使用相对于 QML 文件的路径?!这绝对是疯了。在开发过程中,文件有时会在文件夹之间移动(您移动 QML 文件并必须修复它的所有路径?!);一些不同的 QML 文件必须引用相同的图像(相同的图像资源,但不同 QML 文件中的实际路径不同)。

所以问题是:如何指定相对于应用程序文件夹的图像路径?有可能吗?

提前致谢!

附注。在我们的案例中,使用 Qt 的资源系统(当资源嵌入到可执行文件中时)不是一个选项。我们需要磁盘上的原始资源(包括 QML 文件本身,至少在开发阶段)。

聚苯乙烯。花了一整天时间通过documentation/google/stackoverflow自行解决问题后写了这个问题;根本没有成功(大多数示例使用资源嵌入,其他示例太简单,只使用相对路径)。

最佳答案

如果你不能为你的图像使用 .qrc 文件,你可以试试这个:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>

int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);

QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("applicationDirPath", QGuiApplication::applicationDirPath());
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

return app.exec();
}

在 QML 中,你会这样做:
Image {
source: "file:///" + applicationDirPath + "/../resources/images/image.png"
}

请注意,此代码未经过测试。

关于qt - QML:如何指定相对于应用程序文件夹的图像文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549708/

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