Szukam języka skryptowego, który można zintegrować z moją aplikacją Qt5. Aplikacja ma publiczne api, które można wykorzystać do rozszerzenia aplikacji za pomocą wtyczek. Teraz chcę dodać język skryptowy do aplikacji, który zapewnia dostęp do całego publicznego api. Język skryptowy musi spełniać następujące Wymagania:Jak zapewnić obsługę skryptów dla aplikacji Qt?
- kod skryptu mogą być wykonywane z poziomu aplikacji QT.
- Użytkownik może uzyskać dostęp do systemu plików, sieci i tworzyć elementy graficzne z języka skryptowego.
- Użytkownik może uzyskać dostęp do publicznego interfejsu API mojej aplikacji QT poprzez powiązania.
- Powinien być dostępny generator umożliwiający automatyczne generowanie powiązań skryptów z moim publicznym interfejsem API.
- W przypadku klas, które są częścią publicznego interfejsu API, powinno być możliwe przekazywanie obiektów między aplikacją QT a mechanizmem skryptowania.
I oceniano następujące skrypty Języki:
- QT-Script, wraz z generatorem QT-Script.
Język skryptowy jest oparty na ECMAScript/Javascript i można go łatwo zintegrować z aplikacjami QT. To spełnia wszystkie moje wymagania i działa zgodnie z oczekiwaniami. Generator może być użyty do wygenerowania powiązań dla samej QT-Api i wygenerowania powiązań dla publicznego api mojej aplikacji. Niestety moduł qt-script ma być przestarzały z qt5.5 i scriptgenerator jest nie jest już konserwowany. - Python
Wygląda na to, że dostępnych jest kilka wiązań Python-QT.
Pyside prawdopodobnie byłby w porządku, ale wydaje się być również nieaktywny nieaktywny. Poza tym musiałbym osadzić pythona w C++, który nie jest obsługiwany przez pyside po wyjęciu z pudełka, ale mógłby być zrobiony przez python c api.
Jakie języki skryptowe i narzędzia proponujesz, które spełniają wszystkie moje wymagania?
QJSEngine i innych klas QML zastąpić QT-Script i powinny być w stanie spełnić niektóre (lub wszystkie) z własnymi wymaganiami nawet jeśli aplikacja nie jest pierwotnie na podstawie QML. –
@PavelStrakhov Czytałem o tym. Ale funkcjonalność jest naprawdę ograniczona w porównaniu do qt-script. Wątpię, aby generator skryptów mógł zostać zmodyfikowany w celu wygenerowania porównywalnego wyniku (używając qjsengine zamiast qt-script). – Dreamcooled
Po prostu ... QML .... –