QML工程中如何正确添加图片路径
How to add the path of images in a QML project correctly
我要练习 this example 为此,我创建了一个名为 Main2 的 Qt Quick Console 2 Application 项目在 windows 7 机器上使用 Qt Creator 4.3.0。
main.qml 的代码如下所示:
并且我在 应用程序输出 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" }
我要练习 this example 为此,我创建了一个名为 Main2 的 Qt Quick Console 2 Application 项目在 windows 7 机器上使用 Qt Creator 4.3.0。
main.qml 的代码如下所示: 并且我在 应用程序输出 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" }