Qt is way simpler and straight to the point than you believe it is.
Qt's UI files are XML files that offer a convenient way to design layouts which are intended to be used during the build process to generate C++ code. You are free to manually define layouts by instantiating Qt Widget objects but what's masoquism.
It's also possible to use the same XML documents to dynamically generate the UI, but I never saw a project using that in any way.
Then there's Qt Quick. That's an entirely different beast. The UI is defined with a DSL designed for this very purpose, and javascript can be used to handle UI events.