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

Fra*_*nky 1 qt qml qt-quick qtquickcontrols2

我将练习这个例子,为此我在Windows 7 机器上使用 Qt Creator 4.3.0创建了一个名为Main2Qt Quick Console 2 应用程序项目。

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

程序意外结束。
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 调试已启用。仅在安全的环境中使用它。

请问路径有什么问题吗?

图像位于桌面上名为图像的文件夹中。如何将它们移动到项目下的文件夹中,请一步一步地说明?

dte*_*ech 8

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

然后从 QML 你只需:

Image { source: "images/whatever.jpg" }
Run Code Online (Sandbox Code Playgroud)

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

为图像创建单独的资源文件将为您的构建时间带来奇迹

如果你是热衷于文件系统的访问,是绝对的(请不要做,曾经生产)或相对的,你必须在前面加上file://的路径,告诉Qt的你想要的文件系统,而不是内部资源。

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

ApplicationWindow {
  visible: true
  width: 640
  height: 480

  // your code goes here
}
Run Code Online (Sandbox Code Playgroud)