# Composant d'interface graphique

En informatique, un composant d'interface graphique (aussi appelé widget en anglais ou encore control) est un élément de base d'une interface graphique avec lequel un utilisateur peut interagir (par exemple une fenêtre ou une zone de texte). Ces composants sont généralement regroupés dans des boîtes à outils graphiques (appelées toolkit en anglais). Une fois assemblés par un programmeur, ces composants forment une interface graphique complète.
L'appellation control est connotée Microsoft. L'appellation widget est utilisée dans tous les autres cas.

## Étymologie

Widget est un mot anglais qui est apparu aux États-Unis dans les années 1920. De manière générale, il est utilisé pour désigner un objet banal et quelconque, en français on peut le traduire par « machin » ou gadget. L'origine du mot est d'ailleurs probablement une déformation de ce dernier.
Beaucoup pensent que widget est un mot-valise formé pour crase des mots window (fenêtre (informatique) et gadget, ce qui signifierait donc « gadget de fenêtre »). Selon l'Office québécois de la langue française, on peut traduire widget ou bien « machin » ou encore « gadget logiciel ».

## Composants habituels

* Les éléments d'affichage simple
** Étiquette (Label)
** Icône
* Les boutons
** Bouton poussoir (button)
*** Boutons de barre d'outils
** Case à cocher (Check box)
** Bouton radio (Radio button)
* Les menus
** Menu de commande (Command menu)
** Menu contextuel (Context menu)
** Menu circulaire (Pie menu)
* Les conteneurs
** Barre d'outils (Toolbar)
** Cadre (Frame)
** Onglet (Tab)
** Barre de défilement (Scrollbar)
** Volet (Paned)
** Tiroir (informatique) (Drawer) sous Mac OS X, un panel déroulant attaché à une fenêtre
** Carrousel 3D (Cover Flow)
** Bubble Flow (Accordion thread)
* Les listes
** Liste arborescente (Tree view)
** Vue tabulaire Tableau (Grid view)
** Boîte combinée (Combo box)
** Zone de liste (List box)
* Les champs utilisateur
** Zone de texte (Text box ou Edit Field)
** Zone de mot de passe (Password Field)
** Zone de sélection numérique (Spin Box)
** Curseur (Slider) À ne pas confondre avec le curseur de souris
* Les aides au retour utilisateur
** Barre de progression (Progress bar)
** Barre d'état (Status bar)
** Bulle d'aide (Tooltip)
* Les fenêtres (Window)
** Fenêtre simple
** Fenêtre modale (Modal window)
** Boîte de dialogue (Dialog box)
** Fenêtre flottante (Utility window)
* Les liens hypertextes

## Bibliothèques les plus courantes

* En mode graphique raster
** Qt, multiplateforme et interfaçable dans de nombreux langages
** GTK+, multiplateforme et interfaçable dans de nombreux langages
** Tk, multiplateforme et interfaçable avec de nombreux langages
** wxWidgets ou anciennement wxWindows, multiplateforme
** L'interface de Windows, appelée API Windows ou Win32
** Swing et SWT pour Java
* En mode graphique vecteur
** Cocoa sous MacOS X couramment appelé Aqua
** Windows Presentation Foundation sous Windows XP, Vista, 7 et 8
** XUL avec par exemple Firefox
** SVG avec un player compatible comme SVG player d'Adobe ou Mozilla en interne
* En mode texte
** HTML essentiellement dans un navigateur compatible texte
** Ncurses essentiellement sous Unix
** Turbo Vision sous MS-DOS initialement développé par Borland pour ses langages mais souvent reproduit depuis