如何正确地在QML项目中添加图像路径

时间:2017-08-03 13:45:36

标签: qt qml qt-quick qtquickcontrols2

我要练习this example,为此我使用Qt Creator创建了一个名为 Main2 Qt Quick Console 2应用程序项目Windows 7计算机上的4.3.0

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

  

该程序意外完成   C:\ Users \ Abbasi \ Documents \ QML \ Main2 \ Main2 \ build-Main2-Desktop_Qt_5_9_0_MinGW_32bit-Debug \ debug \ Main2.exe崩溃。
  启动C:\ Users \ Abbasi \ Documents \ QML \ Main2 \ Main2 \ build-Main2-Desktop_Qt_5_9_0_MinGW_32bit-Debug \ debug \ Main2.exe ...
  启用QML调试。只能在安全的环境中使用它。

路径或问题有什么问题?

图像位于桌面上名为 images 的文件夹中。如何将它们移动到项目下的文件夹中,一步一步意味着什么?

2 个答案:

答案 0 :(得分:3)

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

然后从QML中你只需:

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

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

为图像创建单独的资源文件do wonders for your build times

如果您热衷于文件系统访问,那就是绝对的(请不要在生产中做曾经)或亲戚,您必须先加file://告诉Qt您想要文件系统而不是内部资源的路径。

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

ApplicationWindow {
  visible: true
  width: 640
  height: 480

  // your code goes here
}

答案 1 :(得分:0)

使用 qrc:带有图片 URL 可能会起作用

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