【发布时间】:2015-02-17 10:11:59
【问题描述】:
我们正在开发我们的第一个 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 文件中的实际路径不同)。
所以问题是:如何指定相对于应用程序文件夹的图像路径?有可能吗?
提前致谢!
PS。在我们的例子中,使用 Qt 的资源系统(当资源嵌入到可执行文件中时)不是一个选项。我们需要磁盘上的原始资源(包括 QML 文件本身,至少在开发阶段)。
PPS。花了一整天时间通过文档/google/stackoverflow自己解决问题后写了这个问题;根本没有成功(大多数示例使用资源嵌入,其他示例过于简单,仅使用相对路径)。
【问题讨论】:
-
This is absolutely insane. During development files sometimes moved between folders (you move QML file and have to fix all the path it has ?!);-> 在开发阶段开发有什么疯狂之处?显然,如果你没有正确设计它,只是进行货物狂热的编程,你可能需要用新的设计重新实现一些东西。当你重命名某个东西时,因为你意识到你给一个变量起错误的名字,你在任何地方都重命名它是不是也很疯狂?来吧,Alexey... :) Sed 是你的朋友... -
@lpapp 这太疯狂了,因为如果图像文件保持在同一个地方,那么绝对通常希望在应用程序代码中对该文件的引用保持不变并且不依赖于移动其他东西。不是吗?如果某个 QML 文件引用了某个图像,而该图像始终位于同一个位置,为什么每次要将 QML 移动到其他文件夹时都需要修复该 QML?这就是我所说的。使用 qrc 文件时,您没有这样的问题,但不幸的是,我们无法找到原始资源的解决方案。