无法在QML图像中加载图像源

Bru*_*ean 16 qt image qml

这看起来非常基本,但出于某种原因,我无法在下面的超简单QML应用程序中使用图像源.

仅供参考,我正在运行基于Qt 5.3.2的Mac OS-X 10.9.5,Qt Creator 3.2.1.

import QtQuick 2.3
import QtQuick.Controls 1.2

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Test")

    Image {
        id: image1
        x: 10
        y: 10
        width: 100
        height: 100
        source: "testImage.png"
    }
} 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

qrc:/main.qml:10:5: QML Image: Cannot open: qrc:/testImage.png
Run Code Online (Sandbox Code Playgroud)

已创建应用程序窗口但未显示任何图像.我也试过在Rectangle中包装图像,但这没有用.

我在这做错了什么?

"testImage.png"位于项目目录中,我尝试了各种方法来使用资源指定图像路径,绝对,相对,甚至使用QML UI设计器手动指定图像源.

我还要提到为了让Qt 5.3.2工作,我遵循了HERE建议的修改.

谢谢.

Che*_*byl 30

我想你的qml文件是资源,所以尝试将你的testImage.png图像放在资源中.重新编译应用程序,运行它并检查图像是否正常工作.

一切都应该在一起.例如:

在此输入图像描述

我的代码:

Image
{
    source: "images/earth.png"
Run Code Online (Sandbox Code Playgroud)

如果我从资源中删除此图像,我也会收到此错误,但图像仍然在文件系统中的正确位置.

qml源放置在资源中时,所有加载的文件也qml应该在资源中(Qt在资源中搜索此文件,而不是在文件系统中).

  • 如果您将图像放在qrc资源文件中并按如下方式访问它,它也可以工作:Image {source:"qrc:/images/earth.png"} (2认同)

小智 7

如果您是从本地文件系统定位,请获取文件路径和前缀“file:”作为 source = "file:/root/Desktop/Rathod.png"