GUI, Introduction and List

Before starting the application, if you are not aimed at a specific system, you need to select a graphical user interface, and the programmer is offered a wide selection.

Interface utilisateur graphique - GUI

But first of all, for a lambda programmer who is not associated with a particular environment, a fact must be taken into account: the future of programming is not under Windows (or any other system), it is in mobile and web applications running on the server, so you should use a framework that can work on the server and on a mobile device.

The usual user interface on the desktop is based on the WIMP model. This abbreviation is Windows, Icon, Menu, Pointing device. The principle has been developed since 1973 by Xerox and popularized by Apple using MacIntosh, and then Microsoft with Windows 95.

This model is questioned by touchscreens. In the case of mobile devices, there is a significant fragmentation of the graphical environment and interfaces, as described in the mobile phone Programming article, which can only be eliminated using HTML 5.

List of toolkits and platforms

Toolbars contain pre-installed components that you can use directly to create the application interface.

Qt

Qt, acquired by Nokia and then Digia, was originally used in the KDE interface in Linux. It has spread to all systems and is now the basis for programming applications for mobile devices by Nokia. The toolkit, QtClick, provides ready-made code.
Starting with version 5.1, applications also run on Android and iOS.

Advantages

Inconveniences

JavaFX

The Java programming language library includes all components useful for the user interface. In addition, there is a JavaFX - GUI to simplify the creation of user interfaces.
Java classes can be used in an application in C or PHP.

Advantages

Inconveniences

WPF и WinRT

WPF is a .NET graphical and hardware interface layer whose API provides access to all Windows services. WinRT is the runtime of Windows 8.

Advantages

Cons.

STATE CUSTOMS COMMITTEE

Gnome graphics framework in Linux, worn under Windows. The most famous Windows application using this framework is Gimp, and it is available on all operating systems.
There is a GTK port for PHP, but it is not updated with chandeliers and requires a modified version of runtime .
GTK is considered less convenient than Qt, with equivalent capabilities and more complex programming.

Electron

To create a local application with web technologies: Chrome browser for rendering, HTML and CSS for describing the interface and JavaScript on the server and interface side. This also includes the libuv library for accessing the file system and all Node.js extensions.
This is an absolutely portable and simple solution.
Use cases can be found in Advanced Explorer and the Advanced Editor code editor on this site.

Aura

Developed by Google to replace GTK to give Chrome and ChromeOS a portable framework, in particular running on Linux and Android.
It is based on OpenGL and opens context to each window rather than tabs to save resources.
The aura is probably not easy to use for the app because it is made for the browser, but since the trend is to use the browser as an interface to the system (which ChromeOS does), this infrastructure is indirectly universal.
It can also be argued that the SCC was designed for Gimp and became universal, the Aura could follow the same route.

ImGui

If you are looking for a very easy-to-implement interface library for a C++ application, ImGui can be a solution. The code is as simple as this:

ImGui::InputText("string", buffer, 128);

Click [TAG] OK [TAG] to display the input text box and control its operation. The library contains graphics functions. It uses OpenGL intensively, and this may not be appropriate for some applications. That's the cost of its minimal reliance on other bookstores .
ImGui is well suited for the game interface, full-screen applications.

See also: Nuclyar. Made in C, it's very light, around 15KB, but full.

GuiLite

A simple and economical library (about 5KO) written in C++ for all platforms. Visual Studio Code has an interface preview tool.

Advantages

Tcl/Tk

Tcl is a programming language, and Tk is a graphical toolkit that works with Tcl or other languages.

Advantages

Inconveniences

FTLC

Toolbar for creating graphical interfaces in C++.

Advantages

Inconveniences

wxWidget

Toolkit for Windows, Linux, Mac based on GTK, but using its own widgets. Used with different programming languages. There are disadvantages due to the lack of flexibility.
In November 2013, version 3.0 was released, the first updated since 1998! This proves that the project is still alive, and the last update is dated 2018.

FOX Toolkit

Toolbar for creating C++ interfaces. It is worn under Windows, Linux and other Unix.
Can help give Windows the look and feel of Linux applications.

SDL

A library for programming games that uses all computer resources (video, sound, devices), all languages ​ ​ and operating systems. This portable framework provides access to OpenGL and devices .
The programming language can be selected from several, including PHP, C++, Java.
For Windows, Linux.

Basic APIs

Base APIs are the system interface that provide primitives for creating a content library.

OpenGL

Portable graphics library is an alternative to DirectX for optimal performance. It interacts with the graphics card, and the user must have a version for his graphics card if it is not already installed by the seller.
There is an OpenGL interface for browsers, WebGL.

You can use the toolbar with libraries in this list to create your own components. This will not come close to Qt simplicity, but it will be much easier.

Willock

First, the Greek letters are pronounced Chi and Ro by the name Xr, which gave the new name.
Vector Graphics API. Compatible with many systems and programming languages.
This is the interface between toolkit and OpenGL or DirectX.

Berkelium, navigateur comme objet d'interface

WebKit

The Chrome and Safari rendering engine can also be used directly by the application and show HTML 5. There is a WebKit component in Qt.

The Chromium Embedded project allows, together with QtWebkit, to integrate the browser into the application and use HTML 5 as the interface language. After that, the shipowner will be displayed as an object in the scenery.
But a simpler solution would be to use Electron, which does the same and offers an additional API.

Clutter

The feature library supported by Intel and originally intended for the Meego mobile system is not too cumbersome. It is actually an OpenGL interface that makes it easier to use. It has an Mx tool box (since QT has QtClick). The programming language is C++ or Python. The project is now associated with Gnome.

DirectX

Interface for Windows audio and graphics devices.

Conclusion

It can be seen that when the framework makes it possible to program for mobile, you fall into the circle of specialties, each platform works under the system of one brand.
Otherwise, when you program for the desktop, but not specifically for Windows, Qt seems to be the most complete framework at the same time wearable. License - LGPL.
It is also possible to write your own components with OpenGL or WebKit if you need a very limited interface.

See the list of GUI development tools on the EDI page and the list of frameworks for mobile devices.

History and documents

In fact, the invention of the graphical interface with the mouse is attributed to Douglas Karl Engelbart before the Palto Alto version.