Ubuntu SDK: возникают трудности с получением изображений для работы в приложении "QML only" при развертывании на устройство armhf

Когда я развертываю свою программу QML only на рабочий стол, используя Ubuntu SDK, изображения, которые я поместил в ту же папку, что и "Main.qml", могут быть доступны и правильно отображены в приложении с использованием источника: "Pics/testpic.png"

При развертывании на устройстве armhf к ним нельзя получить доступ таким образом, и вместо этого возникает ошибка QML QQuickImage: Невозможно открыть: file:///opt/click.ubuntu.com и т. Д.

Каков наилучший способ получить пакет click для включения папки изображений в двоичный файл, где они могут быть доступны и использоваться приложением?

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

Здесь есть похожий вопрос

Добавить файлы изображений в приложение Ubuntu QML с помощью плагинов C++ (qrc)

и Кукувиу добавляет сноску к своему вопросу:

В итоге я создал проект qmake вместо проекта cmake и добился встраивания изображения в двоичный файл. Для моих нужд это нормально, так как я просто разрабатываю простое приложение для проверки концепции

так что "встраивание изображения в двоичный файл" звучит именно так, как я хочу.

Может кто-нибудь пробежаться через как это сделать со мной?

- Стоит отметить, что я предпринял ряд попыток "нанести удар в темноте". Добавлен файл.qrc (который является решением для приложения "qml с C++"), но доступ через источник: ":/Pics/testpic.png" или источник: "qrc:/Pics/testpic.png" привел к не может открыть то же самое: файл и т. д

-Также попытался добавить папку в панели проекта слева от SDK. Он обнаружился в разделе "дополнительные файлы", но все еще кажется недоступным при развертывании на устройстве armhf.

Любая помощь с этим будет очень цениться.

редактировать

Краткое описание того, где я ошибся...

Спасибо koukouviou за то, что направил меня на правильный путь.

Моя главная проблема заключалась в том, что я запустил приложение QML с проектом Simple UI(qmake). Я собрал его и проверил, развернув его на рабочем столе, и когда я был достаточно доволен этим, я попытался развернуть его на устройстве armhf. Тогда я обнаружил, что изображения не будут отображаться.

У меня не было кода C++ в моем проекте, поэтому казалось ненужным использовать какой-либо из шаблонов проекта "C++", поэтому я предпринял несколько попыток "исправить" мою проблему, но я все еще использовал шаблон проекта "Приложение QML с простым пользовательским интерфейсом".,

Добавление файла QT Resource в приложение QML с проектом Simple UI выглядит так, как будто оно должно работать: файл .qrc может быть добавлен и заполнен вашими изображениями, но любая ссылка на source: "qrc:/Pics/testpic.png" не удалось.

Насколько мне известно, невозможно использовать ваши собственные файлы изображений с "приложением QML с простым пользовательским интерфейсом" и развертывать его на устройстве armhf.

Прочитав ответ Кукувиу, я, наконец, подумал, что мне просто нужно прикусить пулю и начать проект с использованием кода C++. На этот раз я выбрал приложение QtQuick с QML UI (qmake), которое имеет описание "Создает проект приложения C++ Ubuntu с образцом пользовательского интерфейса, содержащего метку и кнопку".

Как упоминалось ранее, я избегал этого раньше, потому что у меня не было кода C++ в моем приложении и не было реального понимания того, как использовать C++ в этом (или любом) контексте, но я был рад обнаружить, что мне не нужно было измените или добавьте любой код C++, и я мог бы просто внести свои изменения в Main.qml и добавить свои файлы изображений в ресурсы. Фактически в дереве проекта уже был файл ресурсов.qrc.

1 ответ

Решение

Вот что я сделал, чтобы вставить изображение в "бинарный файл":

Я использую проект qmake со структурой папок по умолчанию в Ubuntu SDK. Я сделал каталог для хранения своих изображений: имя_проекта / backend / your_click / images. С помощью внутренней папки я создал новый файл ресурсов resource_file.qrc, который содержит следующее:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images/bigredbutton.png</file>
</qresource>
</RCC>

Я думаю, что для создания файла qrc вы можете щелкнуть правой кнопкой мыши, Добавить новый..., Qt, Файл ресурсов Qt и вручную отредактировать файл или создать его вручную с нуля. Я не помню, какой из них работал для меня, попробуйте их и дайте мне знать, я отредактирую ответ для других, которые могут столкнуться с той же проблемой в будущем.

В моем файле Main.qml я использую изображение следующим образом:

Image {
    id: btn
    width: 250; height: 250
    fillMode: Image.PreserveAspectFit
    source: "qrc:images/bigredbutton.png"
    MouseArea {
    ...
    }

Вот скриншот структуры моего проекта, это может помочь.

Другие вопросы по тегам