2016-08-13 5 views
0

Я новичок в Qt и пытаетсяКак использовать изображение в QML

import QtQuick 2.5 
Image { 
    id: root 
    source: "Background.png" 
} 

в Qt Quick Application и получить следующую ошибку

QRC: /main.qml: 3: 1: QML Изображение: Не удается открыть: qrc: /Background.png

В ответ на похожие, но старые вопросы предлагается разместить изображение в папке «Ресурсы», но папка «Ресурсы» это просто псевдо-папка, которая не видна в дереве папок.
Итак, как я могу поместить изображение в папку «Ресурсы» или как использовать его в противном случае?

ответ

1

Посмотрите на Qt resource system. В сущности, вы создадите файл .qrc, в котором перечислены ваши ресурсы, и добавьте его в переменную RESOURCES в приложение .pro. Вы также можете сделать все это в Qt Creator, а шаблоны QuickTime Qt по умолчанию уже имеют настройки ресурсов, поэтому вам нужно только добавить background.png.

+0

Хотя это работает, мне интересно, нет ли решения, которое позволяет показывать изображения, которые не добавляются в qrc. В качестве примера используется средство просмотра изображений, в котором пользователь должен иметь возможность добавлять изображения во время выполнения. – derM

+0

Вы можете. Это просто, что ваш main.qml находится в qrc:/поэтому Qt пытается искать background.png в том же месте. Если вы поместите его в файловую систему, вам нужно указать Qt, где он находится, используя полный путь. Qt не может угадать или сканировать файловую систему, чтобы узнать, где находится «background.png». :) – jpnurmi

+0

Обычно используются относительные пути, которые обычно хорошо определены. Проблема заключается в том, что QML указан как ресурс уже, поэтому все относительные пути относятся к закрытой ресурсной системе. Можно использовать относительные пути изображения, если ваш QML-файл не находится в самой ресурсной системе. Со всеми вытекающими последствиями. – derM

Смежные вопросы