25. Interfaces Utilisateur Graphiques avec Tk
*********************************************

*Tk/Tcl* fait depuis longtemps partie intégrante de Python.  Il
fournit un jeu d'outils robustes et indépendants de la plateforme pour
gérer des fenêtres. Disponible aux développeurs via le paquet
"tkinter" et ses extensions, les modules "tkinter.tix" et
"tkinter.ttk".

Le paquet "tkinter" est une fine couche orientée objet au dessus de
Tcl/Tk. Pour utiliser le module "tkinter", vous n'avez pas à écrire de
code Tcl, mais vous devrez consulter la documentation de Tk, et
parfois la documentation de Tcl. Le module "tkinter" est un ensemble
de surcouches implémentant les *widgets* Tk en classes Python. De
plus, le module interne "_tkinter" fournit un mécanisme robuste
permettant à des fils d'exécution Python et Tcl d'interagir.

Les avantages de "tkinter" sont sa rapidité, et qu'il est généralement
fourni nativement avec Python. Bien que sa documentation soit
mauvaise, d'autres ressources existent : des références, tutoriels,
livres, … Le module "tkinter" est aussi célèbre pour son aspect
vieillot, cependant il à été grandement amélioré depuis Tk 8.5.
Néanmoins, il existe bien d'autres bibliothèques d'interfaces
graphiques qui pourraient vous intéresser. Pour plus d'informations
sur les alternatives, consultez le chapitre Autres paquets d'interface
graphique utilisateur.

* 25.1. "tkinter" — Interface Python pour Tcl/Tk

  * 25.1.1. Modules Tkinter

  * 25.1.2. Guide de survie Tkinter

    * 25.1.2.1. Mode d'emploi

    * 25.1.2.2. Un simple programme *Hello World*

  * 25.1.3. Un (très) rapide aperçu de Tcl/Tk

  * 25.1.4. Correspondance entre *Basic Tk* et *Tkinter*

  * 25.1.5. Relations entre Tk et Tkinter

  * 25.1.6. Guide pratique

    * 25.1.6.1. Définition des options

    * 25.1.6.2. L'empaqueteur

    * 25.1.6.3. Options de l'empaqueteur

    * 25.1.6.4. Association des variables de l'objet graphique

    * 25.1.6.5. Le gestionnaire de fenêtres

    * 25.1.6.6. Types de données des options Tk

    * 25.1.6.7. Liaisons et événements

    * 25.1.6.8. Le paramètre index

    * 25.1.6.9. Images

  * 25.1.7. Gestionnaires de fichiers

* 25.2. "tkinter.ttk" --- Tk themed widgets

  * 25.2.1. Using Ttk

  * 25.2.2. Ttk Widgets

  * 25.2.3. Widget

    * 25.2.3.1. Standard Options

    * 25.2.3.2. Scrollable Widget Options

    * 25.2.3.3. Label Options

    * 25.2.3.4. Compatibility Options

    * 25.2.3.5. Widget States

    * 25.2.3.6. ttk.Widget

  * 25.2.4. Combobox

    * 25.2.4.1. Options

    * 25.2.4.2. Virtual events

    * 25.2.4.3. ttk.Combobox

  * 25.2.5. Notebook

    * 25.2.5.1. Options

    * 25.2.5.2. Tab Options

    * 25.2.5.3. Tab Identifiers

    * 25.2.5.4. Virtual Events

    * 25.2.5.5. ttk.Notebook

  * 25.2.6. Progressbar

    * 25.2.6.1. Options

    * 25.2.6.2. ttk.Progressbar

  * 25.2.7. Separator

    * 25.2.7.1. Options

  * 25.2.8. Sizegrip

    * 25.2.8.1. Platform-specific notes

    * 25.2.8.2. Bugs

  * 25.2.9. Treeview

    * 25.2.9.1. Options

    * 25.2.9.2. Item Options

    * 25.2.9.3. Tag Options

    * 25.2.9.4. Column Identifiers

    * 25.2.9.5. Virtual Events

    * 25.2.9.6. ttk.Treeview

  * 25.2.10. Ttk Styling

    * 25.2.10.1. Layouts

* 25.3. "tkinter.tix" --- Extension widgets for Tk

  * 25.3.1. Using Tix

  * 25.3.2. Tix Widgets

    * 25.3.2.1. Basic Widgets

    * 25.3.2.2. File Selectors

    * 25.3.2.3. Hierarchical ListBox

    * 25.3.2.4. Tabular ListBox

    * 25.3.2.5. Manager Widgets

    * 25.3.2.6. Image Types

    * 25.3.2.7. Miscellaneous Widgets

    * 25.3.2.8. Form Geometry Manager

  * 25.3.3. Tix Commands

* 25.4. "tkinter.scrolledtext" — Gadget texte avec barre de défilement

* 25.5. *IDLE*

  * 25.5.1. Menus

    * 25.5.1.1. Menu *File* (Console et Éditeur)

    * 25.5.1.2. Menu *Edit* (console et éditeur)

    * 25.5.1.3. Menu *Format* (fenêtre d'édition uniquement)

    * 25.5.1.4. Menu *Run* (fenêtre d'édition uniquement)

    * 25.5.1.5. Menu Shell (fenêtre de console uniquement)

    * 25.5.1.6. Menu *Debug* (fenêtre de console uniquement)

    * 25.5.1.7. Menu *Options* (console et éditeur)

    * 25.5.1.8. Menu *Windows* (console et éditeur)

    * 25.5.1.9. Menu *Help* (console et éditeur)

    * 25.5.1.10. Menus Contextuels

  * 25.5.2. Édition et navigation

    * 25.5.2.1. Editor windows

    * 25.5.2.2. Key bindings

    * 25.5.2.3. Indentation automatique

    * 25.5.2.4. Complétions

    * 25.5.2.5. Info-bulles

    * 25.5.2.6. Fenêtre de console Python

    * 25.5.2.7. Coloration du texte

  * 25.5.3. Démarrage et exécution du code

    * 25.5.3.1. Utilisation de la ligne de commande

    * 25.5.3.2. Échec au démarrage

    * 25.5.3.3. Running user code

    * 25.5.3.4. User output in Shell

    * 25.5.3.5. Développer des applications *tkinter*

    * 25.5.3.6. Exécution sans sous-processus

  * 25.5.4. Aide et préférences

    * 25.5.4.1. Help sources

    * 25.5.4.2. Modifier les préférences

    * 25.5.4.3. IDLE on macOS

    * 25.5.4.4. Extensions

* 25.6. Autres paquets d'interface graphique utilisateur
