I want to create a user interface for my interior designer application which mimics the looks of a game engine editor ui. The application should run on Windows, and developed using C++ combined with OpenGL / DirectX.

I've been searching endlessly with little results, so I hoped someone could elaborate on the following frameworks, whether I should / can use it, or recommend something else.

  • Qt (quick) - From what I've seen Qt is great for representing data, but can it support a large growing application, and does it have the required features?

  • WPF - I've heard that you can use WPF combined with C++/CLI, but how does this affect performance and scaleability?

I would also greatly appreciate any information related to how Unity and Unreal Engine developed their editor UI, and how to get started with that UI development approach.

  • I can strongly recommend Qt. Check out libui as well, it's not as flexible but should still work well. You may also consider that many CAD based software does use Qt. If you want ease (depending on development style), I would recommend an actual game engine like Unreal.
    – spikespaz
    Nov 21 '18 at 5:24

TL;DR: Use Qt or .NET, both frameworks will do the job for you! Personally, I recommend Qt over .NET, but that's based on my opinion.

You ask about performance and whether or not the frameworks you mentioned are capable to run your appliciation, so I want to give you some examples:

  • Qt (afaik not quick) is used by: Autodesk Maya, Modo, Nuke, Houdini ...
  • .NET/WPF is used by: Autodesk 3ds Max ...
  • Custom developed frameworks are used by: Unreal Engine1 (Slate UI Framework, see below), Unity (unitygui API, see below)2, Blender (based on OpenGL)3 ...

If you are interested in game development, you might have heard most names I mentioned. All of those programs are huge and complex applications. So yes, any of these approaches can be used to build "large growing application".

As a result, I can't recommended you a framework over another (except for my personal preferences for Qt). Any framework should be able to do the job for you.

As I mentioned, the developers of Unity as well as Epic Games and the Blender Foundation have developed their own frameworks. Unity uses "unitygui" and provides a public API. You may learn it from there official Tutorial.

The Unreal Engine Editor is based on Slate UI Framework, which also public accessable and documented in the Unreal Documentation.

Blender is build using OpenGL and is Open Source.

Summary and general recommendation: You should start with something like Qt or .NET/WPF, there are many books, online resources and communities to help you. If you are familiar with C++, Object-oriented Programming and something like MVC, this shouldn't be that hard.

If you want to use C++ and/or want to develop cross-plattform, go for Qt! .NET/WPF is not cross platform and personally, I would use it only with C#.


1 Unreal Engine Documentation

2 what gui toolkit does the editor use?

3 What is the framework using in blender gui?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.