[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: New to Lua, a few big surprises and still struggling to compile/run my first experiment
- From: Bulat Ziganshin <bulat.ziganshin@...>
- Date: Wed, 30 May 2018 13:01:00 +0300
Sunday, May 6, 2018, 1:18:11 AM, you wrote:
> I was able to write a small Lua+FLTK GUI program in under 1 MB.
> But FLTK is old & ugly(in my opinion) and I really wanted something
> that looked native and modern.
I investigated a lot of GUI librraies last years, looking for small,
portable, nice-looking and easy to use solution, so I can give you some
- IUP Lua is small (500 KB to 3 MB depending on features you need) and
developed by Lua authors themself. It has simple Lua API. It's not as
ugly as FLTK, but looks pretty simple (similar to classic Windows
- "Dear IMGui" is very small (400 KB for everything + a few
hundred KBs for Lua binding) and provides modern-looking flat view.
It's a bit limited, though, in particular GridView lacks some features.
Lua binding: https://github.com/patrickriordan/imgui_lua_bindings
- for a more traditional choice, there are bindings to wxWindows (wxLua)
and Qt (lqt and qtlua) - they will cost you 10-20 MB and provide
modern-looking GUI. You can download ZeroBraneStudio Lua IDE to see
wxLua in action and browse the IDE sources
Aside of Lua-enabled libraries, there is Sciter GUI library that provides
a pretty close emulation of html5+css3+js in just 5-10 MB. It
provides all the niceties of modern-looking html-based GUIs, There
are Windows and Mac versions, while Linux version ATM is in
alpha stage with slow development
Finally, there is Qt Quick which provides nice declarative language,
modern-looking (similar to html) GUIs and costs about 30 MB. It can be
halved but this requires compiling library yourself. It can be even
rendered remotely in browser via WebGL backend
I personally will choose between the last two because they are
feature-complete (unlike ImGui), provide modern-looking fluid GUI
(unlike IUP) and either support well-known html programming model
(Sciter) or high-level declarative language (Qt Quick)
PS: For curiosity, there is also Red language, whose whole
environment including compiler, libraries and GUI library is about 1 MB!
Unfortunately, its GUI library is limited (no GridView at all)
and portability to Mac/Linux is under development. But it's the most
compact GUI description language I've seen - f.e. the entire
calculator example is just about 5 lines of code!!!