Есть ли способ создать графический интерфейс в Lua?

#user-interface #graphics #lua

#пользовательский интерфейс #графика #lua

Вопрос:

Я работаю над решением на основе генетического алгоритма для TSP в Lua и достиг точки, когда мне нужен лучший метод устранения неполадок и проверки результатов. Лучший способ сделать это — использовать графический интерфейс, но, похоже, я ничего не могу найти о графических интерфейсах в Lua.

Я немного поискал в Google и не нашел ничего встроенного в язык. Я нашел наборы инструментов, подобные тому, который найден здесь:

http://lua-users.org/wiki/GraphicalUserInterfaceToolkits

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

Ответ №1:

Несколько идей:

Но сначала, на какой платформе вы работаете?

Вы ограничены платформой? Если нет, я делал очень интересные вещи прямо на iPad, в Codea. Чистый Lua, построенный на OpenGL, поэтому встроенный API для поддержки графики.

Помимо этого, вы, вероятно, могли бы использовать Love2d. Он предназначен для разработчиков игр, но вы, вероятно, могли бы адаптировать его к своим потребностям. Это API Lua, поддерживает графику и является кроссплатформенным. Я мало что знаю об этом (пока), поэтому другие могут поделиться своими мыслями / мнениями.

Комментарии:

1. Я нахожусь на ПК, используя ZeroBrane Studio IDE. Проект скорее концептуальный, чем практичный, поэтому на самом деле его буду использовать только я.

2. ПК — имеется в виду Windows 10 на Intel / AMD?

3. Да, Windows 10 и Intel

Ответ №2:

Если вы все еще неуверенны в Lua, я предлагаю некоторое время придерживаться консоли. Графический интерфейс, независимо от языка, обычно беспорядочный и неудовлетворительный для начинающих.

Если вы уже знаете некоторые HTML и Javascript, рассмотрите возможность использования Lua с веб-фреймворком и использования браузера для управления вашей программой через REST API:

Кроме того, мне еще предстоит найти структуру графического интерфейса, которая подходит для Lua. Почти все представляет собой тонкую оболочку вокруг C или C API и обрабатывается точно так же. С другой стороны, с развитием Web и Electron, похоже, в этом нет необходимости.

Комментарии:

1. Я знаю некоторые HTML и JS, но был бы признателен за любую помощь в правильной настройке API и его использовании, если вы знаете какие-либо учебные пособия или что-нибудь еще

2. Зависит от инструментария, с которым вам в основном удобно. Большинство оболочек LUA GUI — это просто обертки для соответствующих функций в GTK, wxWidgets или другом наборе инструментов. В WX есть много руководств, примеров и инструкций, в GTK — тонны кода и руководств, так что вам просто нужно выбрать инструментарий и придерживаться его. Если вы ожидаете редакторов WISYWIG для LUA … такого нет. Большая часть кодирования выполняется в консольных или текстовых редакторах, и нет таких разработчиков графического интерфейса, как VisualStudio или Freepascal. Однако я бы рекомендовал либо wxLua, либо VCLua, поскольку они являются зрелыми, могут быть изучены и работать на многих платформах.

3. @JordanLejman это зависит от личных предпочтений, для Lua я раньше использовал стек kepler; OpenResty и Pegasus выглядят намного приятнее. На стороне JS — кстати, есть также библиотека под названием pegasus , которая очень подходит для хакерского подхода, если вам нужна только часть xhr — если вам нужно больше на стороне JS, я бы выбрал Vue или React, или любой другой фреймворк, который вы уже знаете напрямую

4. Я хочу указать на Lapis, веб-фреймворк для Lua и Moonscript. Учитывая популярность и относительную простоту веб-интерфейсов, я думаю, что это отличный выбор. Ссылка