Libraries for Graphical User Interfaces (GUI)
There are many libraries to program a graphical user interface for software. Portability, speed of execution, speed and cost of development, stability and the license of your software will depend on your choice of graphics library.
Here are few examples of each type of library mentioned.
Native API
Some systems implement their interface within the operating system, this applies to Windows in which the graph is nested within the core of the OS.
As previously mentioned, the Windows graphical interface is not implemented at the user level but at the kernel level, which has the advantage of obtaining rapid execution interfaces.
However, the direct use of Windows API also has many disadvantages:
- This API lack of abstraction, management of the GUI is using rather low level functions. To develop a GUI with this API take longer and might hide some bugs. However, a library whose approach is low-level might allow for more options at graphical level.
- This API is not portable. Your software may not be used outside of Windows, unless you use an emulation program.
You can use this API in C or C + + using MFC and indeed in many other languages.
Quote:
Note that the programming of graphical interfaces using the Windows API is often more comfortable using IDE like Microsoft Visual C ++.
You can use XWindows to develop graphical interfaces but again you expose yourself to a library that lack of abstraction and require more time for development. However you will get portable software. XWindow also exists in Windows.
Another important point, some implementations are free XWindow (XFree, Xorg).
Third party Libraries for Graphical User Interfaces (GUI)
The third party library
The third-party graphics libraries are external libraries that you can install on your system. They generally act as an overlay of a library of lower level (Api Windows, XWindows ... etc) and offer an interface development easier.
Qt is a portable graphics library, available for Unix / Linux and also for Windows. It is renowned for having a comfortable architecture.
Qt is designed to be used in C ++ but can also be used with many other languages (C / Python etc ...). For an example of Qt, please see the KDE desktop Linux software, or Amarok.
http://www.qtsoftware.com/products/
Like Qt, GTK library is free and portable. It is also appreciated. The Gimp software was mentioned, for example using GTK. Another example is the Gnome used under Linux. GTK is written in C but can be used in many other languages.
http://www.gtk.org/
A free, portable, can be used in various languages. Its specialty is to produce windows with the same look as if it were programmed using the native system API.
http://www.wxwidgets.org/
Specific Embedded Systems for Graphical User Interfaces (GUI)
Specific embedded systems
Embedded systems are a special case since they are often small screen (eg mobile phones, GPS etc ...). There are also libraries to produce GUI on these small systems.
The Nano-X Window System
The Nano-X Window System is an Open Source project aimed at bringing the features of modern graphical windowing environments to smaller devices and platforms. Nano-X allows applications to be built and tested on the Linux desktop, as well as cross-compiled for the target device. The Nano-X Window System was previously named Microwindows, but has been renamed due to conflicts with Microsoft's Windows trademark.
http://www.microwindows.org/