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

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

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


person DaveO    schedule 12.07.2010    source источник


Ответы (2)


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

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

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

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

person Judge Maygarden    schedule 12.07.2010
comment
несмотря на то, что ответ старый, стоит отметить, что при использовании QScript даже в коммерческих целях код должен соответствовать LGPL. Таким образом, либо полный код должен быть ОС, либо, по крайней мере, часть, использующая QScript (например, реализованная как библиотека). - person Valentin Heinitz; 15.03.2019

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

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

person Harald Scheirich    schedule 12.07.2010