Hacker News new | ask | show | jobs
by Kukumber 1238 days ago
ImGUI is great, but i wouldn't call it "versatile", it's too rigid to be versatile

It's too focused on desktop (mouse/kb), and you can't really theme it other than its colors and shape of the edges, doesn't support animations and you can't style the font, it's pretty basic

Creating custom controls is a ton of work

Then you have libraries like this: https://lvgl.io/ (gh: https://github.com/lvgl/lvgl)

That's what i call a versatile GUI library

4 comments

Dear ImGui is coming out of the game dev world and is mainly intended for specialised UI tools and debugging/profiling overlays in 3D games (or generally 3D apps), and for that use case it's just perfect and fixed a longstanding problem (for gamedev inhouse tools, it essentially killed C#/WPF and Qt overnight).
dear imgui is versatile in that it can be used in the sorts of programs that haven't traditionally been well served by existing desktop GUI libraries. (It also has a very convenient API that means you can cobble these GUIs together much more quickly than with most other libraries. So that's helpful too.)

lvgl looks like something you'd use for making the UI for the actual product. dear imgui is for the debug tools that get stripped out of the version you release. It's not intended for user-facing use, so there's no significant support for anything visually interesting. (The actual appearance of the UI isn't really even all that important. It just has to be not too weird-looking.)

I would consider the lack of support for animations a feature, not a limitation.
Versatile: "able to adapt or be adapted to many different functions or activities."

I never mentioned "limitation", ImGui is great for what it is, i wouldn't use lvgl to build my engine tools, i use ImGui actually

Another one is Slint: https://github.com/slint-ui/slint