This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release.

# 24. Interfaces Utilisateur Graphiques avec Tk

Tk/Tcl has long been an integral part of Python. It provides a robust and platform independent windowing toolkit, that is available to Python programmers using the `Tkinter` module, and its extensions, the `Tix` and the `ttk` modules.

The `Tkinter` module is a thin object-oriented layer on top of Tcl/Tk. To use `Tkinter`, you don’t need to write Tcl code, but you will need to consult the Tk documentation, and occasionally the Tcl documentation. `Tkinter` is a set of wrappers that implement the Tk widgets as Python classes. In addition, the internal module `_tkinter` provides a threadsafe mechanism which allows Python and Tcl to interact.

`Tkinter`’s chief virtues are that it is fast, and that it usually comes bundled with Python. Although its standard documentation is weak, good material is available, which includes: references, tutorials, a book and others. `Tkinter` is also famous for having an outdated look and feel, which has been vastly improved in Tk 8.5. Nevertheless, there are many other GUI libraries that you could be interested in. For more information about alternatives, see the Autres paquets d’interface graphique utilisateur section.

- 24.1. `Tkinter` — Python interface to Tcl/Tk
  - 24.1.1. Modules Tkinter
  - 24.1.2. Guide de survie Tkinter
    - 24.1.2.1. Mode d’emploi
    - 24.1.2.2. Un simple programme Hello World
  - 24.1.3. Un (très) rapide aperçu de Tcl/Tk
  - 24.1.4. Correspondance entre Basic Tk et Tkinter
  - 24.1.5. Relations entre Tk et Tkinter
  - 24.1.6. Guide pratique
    - 24.1.6.1. Définition des options
    - 24.1.6.2. L’empaqueteur
    - 24.1.6.3. Options de l’empaqueteur
    - 24.1.6.4. Association des variables de l’objet graphique
    - 24.1.6.5. Le gestionnaire de fenêtres
    - 24.1.6.6. Types de données des options Tk
    - 24.1.6.7. Liaisons et événements
    - 24.1.6.8. Le paramètre index
    - 24.1.6.9. Images
  - 24.1.7. Gestionnaires de fichiers
- 24.2. `ttk` — Tk themed widgets
  - 24.2.1. Using Ttk
  - 24.2.2. Ttk Widgets
  - 24.2.3. Widget
    - 24.2.3.1. Standard Options
    - 24.2.3.2. Scrollable Widget Options
    - 24.2.3.3. Label Options
    - 24.2.3.4. Compatibility Options
    - 24.2.3.5. Widget States
    - 24.2.3.6. ttk.Widget
  - 24.2.4. Combobox
    - 24.2.4.1. Options
    - 24.2.4.2. Virtual events
    - 24.2.4.3. ttk.Combobox
  - 24.2.5. Notebook
    - 24.2.5.1. Options
    - 24.2.5.2. Tab Options
    - 24.2.5.3. Tab Identifiers
    - 24.2.5.4. Virtual Events
    - 24.2.5.5. ttk.Notebook
  - 24.2.6. Progressbar
    - 24.2.6.1. Options
    - 24.2.6.2. ttk.Progressbar
  - 24.2.7. Separator
    - 24.2.7.1. Options
  - 24.2.8. Sizegrip
    - 24.2.8.1. Platform-specific notes
    - 24.2.8.2. Bugs
  - 24.2.9. Treeview
    - 24.2.9.1. Options
    - 24.2.9.2. Item Options
    - 24.2.9.3. Tag Options
    - 24.2.9.4. Column Identifiers
    - 24.2.9.5. Virtual Events
    - 24.2.9.6. ttk.Treeview
  - 24.2.10. Ttk Styling
    - 24.2.10.1. Layouts
- 24.3. `Tix` — Extension widgets for Tk
  - 24.3.1. Using Tix
  - 24.3.2. Tix Widgets
    - 24.3.2.1. Basic Widgets
    - 24.3.2.2. File Selectors
    - 24.3.2.3. Hierarchical ListBox
    - 24.3.2.4. Tabular ListBox
    - 24.3.2.5. Manager Widgets
    - 24.3.2.6. Image Types
    - 24.3.2.7. Miscellaneous Widgets
    - 24.3.2.8. Form Geometry Manager
  - 24.3.3. Tix Commands
- 24.4. `ScrolledText` — Scrolled Text Widget
- 24.5. `turtle` — Turtle graphics for Tk
  - 24.5.1. Introduction
  - 24.5.2. Overview over available Turtle and Screen methods
    - 24.5.2.1. Les méthodes du module Turtle
    - 24.5.2.2. Methods of TurtleScreen/Screen
  - 24.5.3. Methods of RawTurtle/Turtle and corresponding functions
    - 24.5.3.1. Les mouvements dans le module Turtle
    - 24.5.3.2. Tell Turtle’s state
    - 24.5.3.3. Settings for measurement
    - 24.5.3.4. Pen control
      - 24.5.3.4.1. Drawing state
      - 24.5.3.4.2. Color control
      - 24.5.3.4.3. Filling
      - 24.5.3.4.4. More drawing control
    - 24.5.3.5. Turtle state
      - 24.5.3.5.1. Visibility
      - 24.5.3.5.2. Appearance
    - 24.5.3.6. Using events
    - 24.5.3.7. Special Turtle methods
    - 24.5.3.8. Excursus about the use of compound shapes
  - 24.5.4. Methods of TurtleScreen/Screen and corresponding functions
    - 24.5.4.1. Window control
    - 24.5.4.2. Animation control
    - 24.5.4.3. Using screen events
    - 24.5.4.4. Settings and special methods
    - 24.5.4.5. Methods specific to Screen, not inherited from TurtleScreen
  - 24.5.5. The public classes of the module `turtle`
  - 24.5.6. Help and configuration
    - 24.5.6.1. How to use help
    - 24.5.6.2. Translation of docstrings into different languages
    - 24.5.6.3. How to configure Screen and Turtles
  - 24.5.7. Demo scripts
- 24.6. IDLE
  - 24.6.1. Menus
    - 24.6.1.1. Menu File (Console et Éditeur)
    - 24.6.1.2. Menu Edit (console et éditeur)
    - 24.6.1.3. Menu Format (fenêtre d’édition uniquement)
    - 24.6.1.4. Menu Run (fenêtre d’édition uniquement)
    - 24.6.1.5. Menu Shell (fenêtre de console uniquement)
    - 24.6.1.6. Menu Debug (fenêtre de console uniquement)
    - 24.6.1.7. Menu Options (console et éditeur)
    - 24.6.1.8. Menu Windows (console et éditeur)
    - 24.6.1.9. Menu Help (console et éditeur)
    - 24.6.1.10. Menus Contextuels
  - 24.6.2. Édition et navigation
    - 24.6.2.1. Indentation automatique
    - 24.6.2.2. Complétions
    - 24.6.2.3. Info-bulles
    - 24.6.2.4. Fenêtre de console Python
    - 24.6.2.5. Coloration du texte
  - 24.6.3. Démarrage et exécution du code
    - 24.6.3.1. Utilisation de la ligne de commande
    - 24.6.3.2. IDLE-console differences
    - 24.6.3.3. Exécution sans sous-processus
  - 24.6.4. Aide et préférences
    - 24.6.4.1. Additional help sources
    - 24.6.4.2. Modifier les préférences
    - 24.6.4.3. Extensions
- 24.7. Autres paquets d’interface graphique utilisateur