The 7 Best C++ Frameworks for Creating Graphical Interfaces

The most used and the most recommended!

The 7 Best C++ Frameworks for Creating Graphical Interfaces

The most recommended programming language for creating Graphical Interfaces , better known as GUI, is C++, in addition to Games Development, embedded systems and among several other forms of use that can be consulted here.

In this article, we are going to get to know the 7 most used and recommended C++ libraries for creating graphical interfaces. Each one with its specification and recommendation.

See too:

Meet 15 alternatives to create Graphical Interfaces with C++

01. Gtkmm


gtkmm (formerly known as gtk– or gtk minus minus ) is the official C++ interface for the popular GUI library GTK . gtkmm is free software distributed under the GNU Lesser General Public License (LGPL).

gtkmm allows the creation of user interfaces in code or with the Glade Interface Designer , using the Gtk::Builder class. Other features include type-safe callbacks, a comprehensive set of control graphics, and widget extensibility through inheritance.

We have a series about gtkmm that can be seen in the video below:

How to Create Graphic Applications with C++ and GTKmm

02. Qt


Qt (pronounced “cute” ) is a widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms, such as Linux , Windows , macOS , Android or embedded systems with little or no change to the underlying code base, yet it is still a native app with native features and speed.

The Qt is currently being developed by The Qt Company , a publicly traded company, and the Qt Project under Open Source , involving individual developers and organizations working to advance Qt. Qt is available under commercial and open source licenses GPL 2.0, GPL 3.0 and LGPL 3.0 licenses ) .

Terminal Finances made with Qt

03. wxWidgets


wxWidgets (formerly wxWindows ) is a widget toolkit and tool library for creating graphical user interfaces (GUIs) for cross-platform applications.

Some famous software written with wxwidgets:

And among others.

04. Ultimate++


Ultimate++ , also known as U++ or Upp - is a rapid application development framework C++ which aims to reduce the code complexity of typical desktop applications by extensively exploiting the features of C++ .

05. Dear ImGUI

Dear ImGUI

Dear ImGui is an immediate mode graphical user interface written in C++ with back-ends for various graphical APIs (Allegro 5, DirectX, GLFW, iOS, Marmalade, Metal, OpenGL, SDL2 and Vulkan), which also has:

  • projects for additional backend support ( Android , Irrlicht Engine , OGRE , SFML , …)
  • projects for additional language bindings ( C#/.NET, D, Go, Haskell, Java , …)
  • ports to other languages (like Java, for example)

See a video below about Dear ImGUI and SFML

06. Nana


Nana is a cross-platform library C++ for creating graphical user interfaces. It uses a platform-independent API and currently supports Windows , Linux and FreeBSD .

Nana was written in C++ and targets only that language.

The following example of Nana creates a window with a caption “Hello, World” and a “Quit” button:

#include <nana/gui/wvl.hpp>
#include <nana/gui/widgets/button.hpp>

int main(){
     using namespace nana;
     form fm;
     fm.caption("Hello World");
     button btn(fm, rectangle(20, 20, 150, 30));

Nana is free and open source software, licensed under the Boost Software License .

07. FLTK


Fast Light Toolkit ( FLTK , pronounced fulltick ) is a cross-platform widget (graphical control element) library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Designed to accommodate 3D graphics programming, it has an OpenGL interface, but is also suitable for general GUI programming.

Using its own widget, drawing systems and events abstracted from the underlying system-dependent code, it allows you to write programs that look the same on all supported operating systems.

FLTK is free and open source software, licensed under the GNU Lesser General Public License (LGPL) with an additional clause that allows static links from applications with incompatible licenses.

See too:

Meet 15 alternatives to create Graphical Interfaces with C++

cpp gtkmm gui cppdaily