LINUX.ORG.RU

QtQuick и внешние файлы

 


0

1

Уже довольно долго ломаю голову над такой проблемой:

Есть QtQuick и мелкое приложение на нем. Есть внешний js-файл конфига, который по идее надо бы редактировать руками. Все это работает следующим образом

config.js

var a = 2
var b = 3

smth.qml

import 'config.js' as Config
...
width: Config.a
height: Config.b

и все хорошо, ровно до тех пор пока конфиг находится внутри ресурса (вкомпиляется короче). Как только он выносится в отдельный файл, приложение его видеть отказывается напрочь. Уже пробовал 'file:config.js', 'file:/config.js' и тому подобное.

Кто-нибудь знает как такая фигня решается без дополнительных модулей и прочего?

★★★★★

попробуй в qml импортить configloader.js из ресурсов, который делает

Qt.include( 'file:./config.js' )

http://doc.qt.io/qt-5/qml-qtqml-qt.html#include-method

к слову, ты уверен что config.js лежит в текущем working directory?

При этом, делая Qt.include проверь что оно ok, а не error или network

anonymous
()
Ответ на: комментарий от ukr_unix_user

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

upcFrost ★★★★★
() автор топика
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от anonymous

уже пытался. этот метод вроде только функции подгружает. можно конечно геттер на каждый чих написать, но кисло. или переменные можно как-то хитрее подгрузить типа функцией через что-то вроде this.a = a из другого файла?

в текущем - да, уверен. хотя я уже его копии распихал везде где мог

upcFrost ★★★★★
() автор топика
Последнее исправление: upcFrost (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от ukr_unix_user

что есть DirectoryPath? в плане по переводу догадываюсь, но в данном случае это модуль или путь или что?

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от ukr_unix_user

Не прокатит. Там загвоздка в слове JavaScript _resources_, т.е. те жабофайлы что в находятся в стандартном пути ресурса, и штука в том как он ставит этот путь.

Короче нашел что-то что можно назвать выходом. Если хоть что-то подцепить из qrc, то оно ставит на этот qrc стандартный путь ресурса и превращается в тыкву. Выход вообще не юзать qrc от начала и до конца. Тогда правда в открытом виде риходится все qml прикладывать, так что не могу сказать что это офигенное решение, хотелось бы как-то еще.

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

импорт из свойства он жрать не хочет

Что такое импорт из свойства?

Вообще если есть механизм передачи пути к скрипту, то стоит попробовать: doc.qt.io/qt-5/qml-qtqml-qt.html#createQmlObject-method

Dendy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.