Personally, I much prefer C over C++, so IUP from the lua creators is one of the few ways to go other than straight NIH from scratch.
Actually, for video games, I like "immediate mode" GUI, where you redraw the entire screen from scratch in layers for each update cycle. Instead of your screen consisting of a bunch of data structures that describe your screen layout with event callback functions, your "game loop" just calls a bunch of functions to draw all the screen elements, every time around the loop.
Event driven is better for saving batteries, and is great for "turn-based" games, but game loops with immediate mode GUI are much lower latency and much more responsive (no waiting for events), for action games like Doom, Quake, tux racer.
My "goodbye" function buried inside the "newtrix" demo illustrates this "immediate mode" method, but it only animates the geekmaster signature object on top of the animated background. The signature could just as well be GUI elements such as buttons and sliders, but it makes animated backgrounds and animated GUI elements very easy to do. .
Here is a great little video about immediate mode GUIs (popular with Indie-game developers, and which I love to use): https://mollyrocket.com/861
And a nice little immediate mode GUI tutorial: http://iki.fi/sol/imgui/
I have enjoyed using this method in the past, and I plan to use it in my future code here. In my book, frameworks remove the "general" from "general purpose computers". What self-respecting cowboy programmer wants to follow rules laid down by some stinkin' framework limiting what you are allowed to do and how you are allowed to do it?
If you are going to let the COMPUTER tell you what you can do and how you can do it, then what is the point of jailbreaking it anyway? Just give me "bare-metal" root access and get out of my face, thank you!
Okay, you want Qt or Java you say? I will try to help figure it out as far as I can (such as providing links), but as far as using it in my code? Umm... no thanks.