Насколько легко Lua с Qt, по сравнению с QtScript?

Я только начинаю разработку на С++ с помощью Qt. Тем не менее, я также заинтересован в использовании Lua для script моего приложения, учитывая различные статьи, в которых говорится о скорости его разработки (легкости) для написания рабочего процесса /ui/glue приложения. Однако из коробки Qt не поддерживает его, вместо этого он включает QtScript.

Мой вопрос в основном должен ли я попытаться использовать Lua с Qt для разработки коммерческого приложения или придерживаться QtScript, доступного в SDK? Я думаю, что прежде всего вопрос о скорости развития и стабильности.

Ответ 1

Я столкнулся с той же дилеммой. Я предпочитаю Lua для ECMAScript для этих видов задач. Однако так же просто, как писать привязки Lua, уровень интеграции, предоставляемый QtScript, дает много возможностей из коробки. Это включает привязки к встроенным QObject -удаленным классам, а также вашим собственным классам, которые наследуют от QObject и/или QScriptClass.

Итак, если вы хотите только script или настроить собственные классы, не зависящие от Qt-функций, я бы пошел с Lua. Однако, если вы в первую очередь хотите взаимодействовать с типами, основанными на QObject, то QtScript значительно уменьшит ваше начальное время разработки.

Лучшим из обоих миров будет возможность анализировать сценарии Lua с альтернативной версией QScriptEngine. Я имею в виду изучить, как сложно было бы интегрироваться в течение некоторого времени...

UPDATE: QtLua по-прежнему активно поддерживается и может решить вашу проблему напрямую.

Ответ 2

Javascript настолько хорошо интегрирован прямо сейчас, если вы хотите интегрировать lua, у вас, вероятно, будет гораздо более высокий приоритет. Также текущая реализация (4.6) использует движок webkit javascript, что означает, что он невероятно быстро.

Я использовал Javascript и Qt для текущего проекта, и было довольно легко переносить данные в любом направлении (Qt в Javascript и наоборот)