Les bibliothèques pour interfaces graphiques (GUI)

Décembre 2016

Il existe de nombreuses bibliothèques permettant de programmer une interface graphique pour un logiciel. Et la portabilité, la rapidité d'exécution, la rapidité et le coût de développement, la stabilité et la licence de votre logiciel dépendront de votre choix de bibliothèque graphique.
Cet article n'évoquera que quelques exemples importants de chaque type de bibliothèque évoqué.



I Les API natives


Certains systèmes implémentent leur interface graphique au sein même du système d'exploitation, c'est le cas de windows dont la partie graphique est nichée à l'intérieur même du noyau de l'OS.

I.1 L'Api graphique de Windows


Comme précédemment évoqué, l'interface graphique de Windows n'est pas implémentée au niveau utilisateur mais au niveau du noyau, ce qui a pour avantage d'obtenir des interfaces rapides d'exécution.

Toutefois l'utilisation directe de l'Api de Windows présente aussi de nombreux inconvénients:
  • Cette Api manque d'abstraction, la gestion de l'IHM se fait en utilisant des fonctions plutôt bas-niveau. Développer une GUI avec cette Api prendra plus de temps et risque de cacher certains bugs. Toutefois une bibliothèque dont l'approche est bas-niveau pourra éventuellement pour laisser plus de possibilités au niveau graphique.
  • Cette Api n'est pas portable. Votre logiciel ne pourra pas être utilisé en dehors de Windows, à moins d'utiliser l'émulation.


Vous pouvez utiliser cette Api en C ou en C++ en utilisant les MFC et bien sûr dans beaucoup d'autres langages.
Notez que la programmation d'interfaces graphiques utilisant l'Api Windows est souvent plus confortable en utilisant des IDE tels que Microsoft Visual C++.

I.2 XWindow


Proposer XWindow en tant qu'Api native, c'est un peu mentir. En effet XWindow est déjà une bibliothèque tierce mais étant donné qu'elle se situe à la base du système d'IHM sous certains OS comme Linux/Unix, on va la classer comme ça dans cet article.
Vous pouvez utiliser XWindow pour développer des interfaces graphiques mais là encore vous vous exposez à une bibliothèque qui manque d'abstraction et demandera donc plus de temps de développement. En revanche vous obtiendrez un logiciel tout à fait portable: XWindow existe aussi sous Windows.

Autre point important, certaines implémentations de XWindow sont libres (XFree, XOrg).

II Les bibliothèques tierces


Les bibliothèques graphiques tierces sont des bibliothèques externes que vous pouvez installer sur votre système. Elles agissent généralement en tant que surcouche d'une bibliothèque de niveau inférieur (Api Windows, XWindows etc...) et offrent ainsi une interface de développement plus confortable.

II.1 Qt


Qt est une bibliothèque graphique portable, disponible pour Unix/Linux comme pour Windows. Elle est renommée pour avoir une architecture confortable.

Avant utilisation, je vous recommande de vous informer sur la licence de Qt:

Qt est prévu pour être utilisé en C++ mais on peut aussi l'utiliser avec de nombreux autres langages (C/Python etc...)

Pour avoir un exemple de Qt, il suffit de voir le bureau KDE sous Linux ou encore le logiciel Amarok.

=> Site officiel

II.2 GTK


Comme Qt, GTK est bibliothèque libre et portable. Elle est également appréciée. Le logiciel Gimp a par exemple été fait avec Gtk.
Un autre exemple est le bureau Gnome utilisé sous Linux.
Gtk a été écrit en C mais peut être utilisé dans de nombreux autres langages.

=> Site officiel

Exemple de gimp:


II.3 WxWidgets


Idem, libre, portable, peut être utilisé dans divers langages. Il a pour particularité de produire des fenêtres ayant le même
look que si elle avaient été programmées en utilisant l'Api native du système.

=> Site officiel

III Cas spécifiques: les systèmes embarqués


Les systèmes embarqués sont un cas à part étant donné qu'ils sont souvent en petit écran (ex: téléphones portables, GPS etc...)
Il existe aussi des bibliothèques pour produire des GUI sur ces petits systèmes.

III.1 The Nano-X Window System


Autrefois connu sous le nom de Microwindows, c'est une petite librairie libre, à visiter.

=>Site officiel

A voir également :

Ce document intitulé «  Les bibliothèques pour interfaces graphiques (GUI)  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.