GUI for tools

This topic is 736 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I currently use  https://github.com/ocornut/imgui but it doesn't work well for me. Its a bit of a pain to work with a bit more complex gui hierarchy. And to be honest I can't understand it well enough to extend it (and currently I want to avoid it).

EDIT(thanks Alberth) The libs must work on Windows, and it has to be renderer independent (as I have multiple rendering APIs).?

?What gui lib do you use for your editors and in-game tools?
?

Edited by imoogiBG

Share this post

Share on other sites

Qt is quite nice, but it may have license issues unless you buy a copy.

Also, you didn't state what platform you need it to work at, so you might want to check supported platforms too :)

Share this post

Share on other sites

IMGUI is pretty popular for tools, unity3d uses it to draw its entire editor gui,

https://github.com/ocornut/imgui

However, It's immediate mode so a completely different approach than "classical" object oriented gui libraries but IMHO very well suited for rapid prototyping and tool guis.

EDIT: IMGUI wasn't mentioned in the original post because of an editor bug apparently.

Edited by Madhed

Share this post

Share on other sites

Yeah I currently use it  (I've mentioned it i my 1st post but gamedev.net doesn;t work well with edge and something happened?) and I'm looking for an replacement.

I'm not sure if Unity use that lib. I know that they use the imgui approach written by themselves.

Edited by imoogiBG

Share this post

Share on other sites

Yeah the editor can be pretty buggy sometimes...

The imgui approach defenitively has its problems when it comes to automatic layouting. So if you need a powerful layout system you should probably try something different.

Share this post

Share on other sites
https://www.wxwidgets.org/

Uses default OS UI under the hood, have not used it myself.

Share this post

Share on other sites

Qt is quite nice, but it may have license issues unless you buy a copy.

Also, you didn't state what platform you need it to work at, so you might want to check supported platforms too

Qt doesn't have any real license issues - at least, not according to my decently thorough but non-lawyer opinion of the matter.

You can use Qt for commercial projects just fine as long as you:

A) Dynamically link instead of statically link (no problem whatsoever for desktop applications; might be a problem for mobile releases, but people have workarounds for that on some platforms)

B) Release any sourcecode changes you've made to Qt itself (your own project can remain close-sourced)

C) Make sure that you distribute Qt's license alongside the Qt libraries (which most 3rd party libraries (including the ones you are already using) require and isn't much of a hassle)

Qt is managed and developed by an opensource community, and Qt itself is opensource under the LGPL license. If you're not familiar with opensource licenses, my general rule of thumb for indie commercial game development is GPL = bad, LGPL = good, zlib/libpng/MIT = better (other peoples' views differ). You can read any of my other posts, or dozens of other peoples' articles on the net, for more detailed opinions on the matter, so I won't derail the thread by going into further details here. More recent versions (the past year or more) of Qt are under LGPL3 instead of LGPL2, and people thought that might be a problem at first, but it isn't, so we're good.

Now, there is a company (Digia) who makes its money off of licensing alternative commercial licenses for Qt, and providing Qt-related support. Because they manage the official Qt website portal, they write the portal in such a way as to manipulate peoples opinions of it, to drive commercial license sales (granted, I don't know their actual motives, but that's what it looks like), so they ask a bunch of misleading questions and so on, designed to stir up doubt in your mind, but because the software is already open sourced, they can't do a thing about people using it commercially for free (Note: Digia wasn't the creator of Qt either, they just bought the licensing/support business from Nokia (who bought Trolltech, the original Qt creators); they do help steer Qt development, though, but it's heavily community-driven).

Share this post

Share on other sites

I currently use  https://github.com/ocornut/imgui but it doesn't work well for me. Its a bit of a pain to work with a bit more complex gui hierarchy. And to be honest I can't understand it well enough to extend it

Could you post on ImGui github about your issues, what you are trying to do and what is difficult or you are failing to figure out? I'm interested to figure out if they are shortcoming of the library or misunderstanding about how to use it. Not sure what you refer to by "complex" hierarchies but I saw several editors made with it and always interested in further improvements. Thanks.

Share this post

Share on other sites
misunderstanding about how to use it.

I feel like this is the thing.

I'm building a 3dsMax'ish editor (of course a lot simpler) . An example widget that I need is a hierarchy of nodes with each node having multiple behavior props (selected, locked, visible, node-rename, ect.). Implementing a tree viewer like this seems a bit impossible to me with imgui(I'm talking Imgui as a concept).

I've implemented myself a ?tree in a few lines (the code is pretty lame I feel like I should share it http://pastebin.com/QcaDCmac ), but implementing the whole thing with the "imgui" approach is probably the wrong thing to do. I'm not sure if imgui is intended for these stuff.

Otherwise I really like how lightweight the :dear imgui" is. In just a few functions Its ?working there and its rendering GUI, simply beautiful.

By asking that question I was hoping to understand better the imgui concept and implement the UI myself or find a library that is as easy Integratable(if there is a word like this) as "dear imgui" while provides the regular "stateful" GUI.
Edited by imoogiBG