QML工程中如何正确添加图片路径

How to add the path of images in a QML project correctly

我要练习 this example 为此,我创建了一个名为 Main2Qt Quick Console 2 Application 项目在 windows 7 机器上使用 Qt Creator 4.3.0

main.qml 的代码如下所示: like this 并且我在 应用程序输出 window 中收到以下错误:

The program has unexpectedly finished.
C:\Users\Abbasi\Documents\QML\Main2\Main2\build-Main2-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\Main2.exe crashed.
Starting C:\Users\Abbasi\Documents\QML\Main2\Main2\build-Main2-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\Main2.exe...
QML debugging is enabled. Only use this in a safe environment.

路径有什么问题或有什么问题吗?

图像位于桌面上名为 images 的文件夹中。如何将它们移动到项目下的文件夹中,请问step-by-step是什么意思?

  • 将图像文件夹复制到您的项目文件夹
  • 右击你的项目-添加新的-Qt-资源文件-images.qrc
  • 右键单击它 - 添加现有文件,转到 /images 和 select 您要添加的内容
  • 或者,您可以直接使用"add existing directory"选项添加目录中的所有文件

然后从 QML 您只需:

Image { source: "images/whatever.jpg" }

这样图像就整齐地打包在您的可执行文件中。在大多数情况下这是可以的,除非你有千兆字节的图像。它还有助于防止人们用亵渎版本替换您的库存图片 ;)

为图像创建单独的资源文件将

如果您热衷于文件系统访问,无论是绝对的(请不要在生产中永远)还是相对的,您都必须在前面加上 file:// 到告诉 Qt 你想要文件系统而不是内部资源的路径。

更新:如您的 main.cpp 文件所示,实际问题是您使用的项目模板使用了 QQmlApplicationEngine。您正在关注的教程可以追溯到更早的日子,并使用 QQuickView。后者可以有任何 QML 元素作为根,但前者需要有一个 ApplicationWindow,这就是你没有得到任何输出的原因。因此,您需要将现有代码包装在 ApplicationWindow:

ApplicationWindow {
  visible: true
  width: 640
  height: 480

  // your code goes here
}

使用 qrc:图片 URL 可能有效

 Image { source: "qrc:images/whatever.jpg" }