QML, js и CPP [Решено]

Изображение пользователя nitrofox.

А где можно почитать про то как писать гибридные приложения..
В С++ я создал класс и зарегистрировал его
qmlRegisterSingletonType("SuperGame.personage", 1, 0, "SuperGame",sPersone);
В Qml без проблем я могу получить доступ к объекту
import SuperGame.personage 1.0
..
SuperGame.test("Hello") // Выведет Hello в дебаг
..

Вопрос как вызвать эту функцию(SuperGame.test("Hello")) с файла js(У меня там хранятся вспомогательные "глобальные" функции)
И возможно ли получить доступ из одного файла js к данным другого js скрипта? У меня есть два файла js. Один с функциями, а второй с массивом строк
+ последний вопрос. У меня в qml есть функция void updateUI(void). Она обновляет показатели денег итд... Можно ли ее вызвать из С++?

0
nitrofox - 6 Декабрь, 2015 - 17:57
Изображение пользователя nitrofox.

Ем наверное я так и не понял как правильно писать программы на qml.. Не нашел ничего про регистрации функций в js скриптах.
Пока что использовал костыль.
gameDb.js
.pragma library

var globalFunctions = {}

RGame.qml
import "../js/gameDb.js" as DB
...
    QtObject{
        id: gameFunction
        function testPrint(){
            SuperGame.test("Hello")

        }
        Component.onCompleted: {

            DB.globalFunctions.test = gameFunction.testPrint
        }

    }
...

+1
MacLeod - 7 Декабрь, 2015 - 02:59
Изображение пользователя MacLeod.

Никогда особо не погружался в Qt, но раз все молчат...
http://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html - тут предельно конкретно расписано, как это все делать.
Доступ к QML происходит через получение корневого элемента, далее доступны все прелести вроде поиска дочерних элементов по имени. Доступ к полям - очень прост, а для вызова методов нужно приводить объект через qobject_cast, при этом проверка сигнатур будет на этапе компиляции.
Даже почти классический invoke доступен, со своеобразным маршаллингом типов...

0
nitrofox - 7 Декабрь, 2015 - 16:17
Изображение пользователя nitrofox.

Спасибо. Во всем разобрался. Шурша по гулу и документации нашел много чего интересного и полезного (Что не описывал шлее и https://qmlbook.github.io).

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры