Доброго времени суток!
Моя программа имеет возможность подключения скриптов через Qt Script. Скрипту передается некий объект проги (который от QObject) и он им может манипулировать, так же, сама прога может вызывать функции скрипта через QScriptEngine->globalObject().property("function").call().
В последнем обновлении (Qt 5.5) модуль Qt Script объявлен устаревшим и рекомендуется переход на QML, поэтому и я задался вопросом о переходе, да и возможностей в QML побольше.
Сколько видел примеров QML в инете, то все они ориентированы на GUI. А возможно ли использовать QML без GUI? Тоесть, чтобы пользователь просто мог писать скрипты в которых есть функции с заранее определенными именами, а прога могла эти функции вызывать?
Спасибо!
reeshkov
28.10.2015, 13:47
http://qml.ucoz.com/publ/stati_po_qml/inte...ml_i_c/5-1-0-14Цитата
Обработка Qt-сигналов в QML
Qt C++ сигналы могут быть обработаны с помощью выражений на языке JavaScript в QML-контексте. Пусть класс CallableClass из предыдущего примера также содержит свой сигнал: cppSignal ().
class CallableClass : public QObject
{
Q_OBJECT
...
signals:
void cppSignal();
};
Сигнал может быть обработан в QML при помощи элемента Connections. Этот элемент может быть использован для обработки сигналов любого целевого объекта, в том числе и других элементов QML. Обработчик сигнала будет называться onSignalName. Здесь первая буква в имени сигнала становится заглавной.
Connections {
target: cppObject
onCppSignal: { console.log("QML function called!"); }
}