QML без GUI. Переход с Qt Script на QML |
Здравствуйте, гость ( Вход | Регистрация )
QML без GUI. Переход с Qt Script на QML |
MishaUA |
20.9.2015, 11:36
Сообщение
#1
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Доброго времени суток!
Моя программа имеет возможность подключения скриптов через 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
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 18.9.2015 Пользователь №: 4450 Спасибо сказали: 5 раз(а) Репутация: 0 |
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!"); } } |
|
|
Текстовая версия | Сейчас: 22.11.2024, 8:19 |