Мое приложение требует чтения содержимого из файла. Можете ли вы сделать это, используя только QML? Или я должен использовать C ++ для этого?
Полагаю, ответ - нет. QML не предоставляет API для доступа к локальным файлам. Вы можете использовать его в сочетании с javascript для или c ++ в Qt. Я полагаю, это зависит от того, что вы пытаетесь открыть и интерпретировать, потому что QML также будет иметь ограниченную поддержку для анализа данных, которые вы читаете.
Простой текстовый файл читается через javascript
. Файл ввода / вывода в c ++
.Вы можете читать локальные текстовые файлы, используя XMLHttpRequest в QML. Тем не менее, в нем отсутствуют все функции XMLHttpRequest2 и некоторые из версии 1, что делает невозможным, насколько я могу судить, чтение в двоичных файлах.
Чтобы обойти это, я написал плагин C ++ для QML для чтения файлов. Он по-прежнему не может работать с двоичными файлами напрямую, но дает возможность читать их в кодировке base64. Я опубликовал этот код в открытом доступе, поэтому делайте с ним что хотите.
Существует встроенный файловый ввод / вывод, доступный для QML с помощью V-Play SDK FileUtils . Он работает кроссплатформенно на десктопах, iOS и Android.
Это выглядит так:
var documentsData = fileUtils.readFile("subfolder/file.json")