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 {
...
}