Не удается загрузить источник изображения в QML-изображении

Это кажется действительно основным, но по какой-то причине я не могу заставить источник изображения работать в ультра-простом приложении QML ниже.

FYI, я запускаю Mac OS-X 10.9.5, Qt Creator 3.2.1 на основе Qt 5.3.2.

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"
    }
} 

Я получаю следующую ошибку:

qrc:/main.qml:10:5: QML Image: Cannot open: qrc:/testImage.png

Создается окно приложения, но изображение не отображается. Я также попытался обернуть изображение в прямоугольник, но это не помогает.

Что я здесь делаю неправильно?

"testImage.png" находится в каталоге проекта, и я пробовал всевозможные способы указать путь к изображению, используя ресурсы, абсолютный, относительный и даже указав источник изображения вручную с помощью дизайнера интерфейса QML.

Я также упомянул, что для работы Qt 5.3.2 я следовал предложенной модификации ЗДЕСЬ.

Спасибо.

Ответ 1

Я полагаю, что ваш файл qml находится в ресурсах, поэтому попробуйте поместить изображение testImage.png в ресурсы. Перекомпилируйте приложение, запустите его и проверьте, правильно ли работает изображение.

Все должно быть вместе. Например:

enter image description here

Мой код:

Image
{
    source: "images/earth.png"

Если я удалю это изображение из ресурсов, я тоже получу эту ошибку, но изображение по-прежнему находится в правильном месте в файловой системе.

Когда источник qml размещен в ресурсе, все файлы, которые загружаются из qml, тоже должны быть в ресурсе (Qt ищет эти файлы в ресурсах, а не в файловой системе).

Ответ 2

Если вы находитесь в локальной файловой системе, получите путь к файлу и префикс "file:" как source = "file:/root/Desktop/Rathod.png"

Ответ 3

Если вы используете qrc, убедитесь, что изображение добавлено в ваш проект. Просто иметь его в вашем исходном каталоге может быть недостаточно. Например, мой main.qml находится в определенном каталоге. Я перемещаю мой .png в тот же каталог. Затем я "Добавить существующие файлы.." и добавить .png в проект. Мое изображение имеет следующий

source:"qrc:<same dir as main.qml>/image.png"

Ответ 4

Могут быть две проблемы:

  1. Изображение повреждено, хотя изображение было правильно отображено во всех предварительных просмотрах IconImage отказывается загружать его. Попробуйте использовать другое изображение, которое известно как работать правильно Похоже, что загрузчик Qt Image очень чувствителен к формату изображения.
  2. Существует проблема с кешем ресурсов. Попробуйте удалить qml_qmlcachea.qrc в папке компиляции и попробуйте снова