Sto cercando un linguaggio di scripting che possa essere integrato nella mia applicazione Qt5. L'applicazione ha una API pubblica, che può essere utilizzata per estendere l'applicazione con i plugin. Ora voglio aggiungere un linguaggio di scripting all'applicazione che fornisce l'accesso all'intera API pubblica. Il linguaggio di scripting deve soddisfare i seguenti requisiti :Come fornire supporto Scripting per Qt-Applications?
- codice script può essere eseguito dall'interno del QT-Application.
- L'utente può accedere al file system, alla rete e creare elementi grafici dal linguaggio di scripting.
- L'utente può accedere alla API pubblica della mia applicazione QT tramite binding.
- Ci dovrebbe essere un generatore disponibile per generare automaticamente collegamenti linguaggio script per la mia API pubblica.
- Per le classi che fanno parte di Public Api, dovrebbe essere possibile passare oggetti tra l'applicazione QT e lo Scripting Engine.
Ho valutato il seguente script-Lingue:
- Qt-Script, insieme con il generatore di QT-Script.
Il linguaggio di scripting è basato su ECMAScript/Javascript e può essere facilmente integrato nelle app QT. Questo soddisfa tutti i miei requisiti e funziona come previsto. Il generatore può essere utilizzato per generare associazioni per lo stesso QT-Api e per generare associazioni per l'API pubblica della mia applicazione. Purtroppo il modulo qt-script sarà deprecato con qt5.5 e lo scriptgame è non più gestito. - Python
Sembra che siano disponibili diversi collegamenti Python-qt.
Pyside sarebbe probabilmente ok, ma sembra essere inattivo pure. A parte questo, dovrei incorporare python in C++, che non è supportato da pyside out of the box, ma potrebbe essere fatto da python c api.
Quali linguaggi di scripting e strumenti suggerite, che soddisfano tutte le mie esigenze?
QJSEngine e le altre classi QML sostituire Qt-Script e dovrebbe essere in grado di soddisfare alcune (o tutte) le vostre esigenze, anche se l'applicazione non è originariamente basato su QML. –
@PavelStrakhov Ho letto di questo. Ma la funzionalità è davvero limitata rispetto a qt-script. Dubito che lo scriptgenerator possa essere modificato per generare un risultato comparabile (usando qjsengine invece di qt-script). – Dreamcooled
Solo ... QML .... –