Насколько просто Lua с Qt по сравнению с QtScript? - PullRequest
10 голосов
/ 12 июля 2010

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

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

Ответы [ 2 ]

14 голосов
/ 12 июля 2010

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

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

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

ОБНОВЛЕНИЕ : QtLua по-прежнему активно поддерживается и может решить вашу проблему.проблема напрямую.

1 голос
/ 12 июля 2010

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

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

...