Programmation GUI en Python (Tkinter)

Python fournit plusieurs bibliothèques pour le développement d'interfaces graphiques. Voici plusieurs bibliothèques GUI Python couramment utilisées :

  • Tkinter:Le module Tkinter (interface Tk) est l'interface vers la boîte à outils GUI Tk standard de Python. Tk et Tkinter peuvent être utilisés sur la plupart des plateformes Unix, et peuvent également être appliqués dans les systèmes Windows et Macintosh. Les versions ultérieures de Tk8.0 peuvent implémenter des styles de fenêtre natifs et fonctionnent bien sur la grande majorité des plateformes.

  • wxPython:wxPython est un logiciel open source et une excellente bibliothèque graphique GUI pour le langage Python, permettant aux programmeurs Python de créer facilement des interfaces utilisateur GUI complètes et entièrement fonctionnelles.

  • Jython:Les programmes Jython peuvent être intégrés de manière transparente à Java. À l'exception de certains modules standard, Jython utilise des modules Java. Jython possède presque tous les modules de Python standard qui ne dépendent pas du langage C. Par exemple, l'interface utilisateur de Jython utilisera Swing, AWT ou SWT. Jython peut être compilé dynamiquement ou statiquement en bytecode Java.


Programmation Tkinter

Tkinter est la bibliothèque GUI standard pour Python. Python peut utiliser Tkinter pour créer rapidement des applications GUI.

Comme Tkinter est intégré au package d'installation Python, tant que Python est installé, vous pouvez importer la bibliothèque Tkinter. De plus, IDLE est également écrit en Tkinter, et Tkinter peut toujours gérer facilement des interfaces graphiques simples.

Remarque: Le nom de bibliothèque utilisé dans la version Python3.x est tkinter, c'est-à-dire que la première lettre T est en minuscule.

import tkinter

Créer un programme GUI

  • 1. Importer le module Tkinter
  • 2. Créer le widget
  • 3. Spécifier le maître de ce widget, c'est-à-dire à quel widget celui-ci appartient
  • 4. Indiquer au GM (gestionnaire de géométrie) qu'un widget a été créé

Exemple (Python3.x)

#!/usr/bin/python3 import tkinter top = tkinter.Tk() # Entrer dans la boucle top⟧mainloop.mainloop()

Exemple (Python2.x)

#!/usr/bin/python # -*- coding: UTF-8 -*- import Tkinter top = Tkinter.Tk() # Entrer dans la boucle top⟧mainloop.mainloop()

Le résultat de l'exécution du code ci-dessus est illustré dans la figure ci-dessous :

tkwindow

Exemple

#!/usr/bin/python # -*- coding: UTF-8 -*- # Méthode d'import Python2.x from Tkinter import * # Importer la bibliothèque Tkinter # Méthode d'import Python3.x #from tkinter import * root = Tk() # Créer la couleur d'arrière-plan de l'objet fenêtre # Créer deux listes li = ['C','python','php','html','SQL','java'] movie = ['CSS','jQuery','Bootstrap'] listb = Listbox(root) # Créer deux widgets listbox listb2 = Listbox(root) for item in li: # Insérer des données dans le premier widget listb.insert(0,item) for item in movie: # Insérer des données dans le deuxième widget listb2.insert(0,item) listb.pack() # Placer les widgets dans la fenêtre principale listb2.pack() root.mainloop() # Entrer dans la boucle de messages

Le résultat de l'exécution du code ci-dessus est illustré dans la figure ci-dessous :


Widgets Tkinter

Tkinter fournit divers contrôles, tels que des boutons, des étiquettes et des zones de texte, utilisés dans une application GUI. Ces contrôles sont souvent appelés widgets ou composants.

Il y a actuellement 15 widgets Tkinter. Nous présentons ces widgets et une brève introduction dans le tableau suivant :

WidgetDescription
BoutonWidget Button ; affiche un bouton dans le programme.
CanvasWidget Canvas ; affiche des éléments graphiques tels que des lignes ou du texte
CheckbuttonWidget Checkbutton ; utilisé pour fournir des cases à choix multiples dans un programme
EntryWidget Entry ; utilisé pour afficher un contenu textuel simple
CadreWidget Frame ; affiche une zone rectangulaire à l'écran, principalement utilisé comme conteneur
ÉtiquetteWidget Label ; peut afficher du texte et des bitmaps
Zone de listeWidget Listbox ; le widget fenêtre Listbox est utilisé pour afficher une liste de chaînes de caractères à l'utilisateur
MenubuttonWidget Menubutton ; utilisé pour afficher des éléments de menu
MenuWidget Menu ; affiche la barre de menus, les menus déroulants et les menus contextuels
MessageWidget Message ; utilisé pour afficher du texte multiligne, similaire à Label
Bouton radioWidget Radiobutton ; affiche un état de bouton à sélection unique
ÉchelleWidget Scale ; affiche une échelle numérique, fournissant un intervalle numérique à plage limitée pour la sortie
ScrollbarWidget Scrollbar ; utilisé lorsque le contenu dépasse la zone visible, comme une listbox.
TexteWidget Text ; utilisé pour afficher du texte multiligne
ToplevelWidget Toplevel ; utilisé pour fournir une boîte de dialogue séparée, similaire à Frame
SpinboxWidget Spinbox ; similaire à Entry, mais peut spécifier une plage de valeurs d'entrée
PanedWindowPanedWindow est un plugin de gestion de disposition de fenêtre qui peut contenir un ou plusieurs widgets enfants.
LabelFramelabelframe est un widget conteneur simple. Souvent utilisé pour des dispositions de fenêtre complexes.
tkMessageBoxUtilisé pour afficher une boîte de message pour votre application.

Attributs standards

Les attributs standards sont les attributs communs à tous les widgets, tels que la taille, la police, la couleur, etc.

Attribut Description
Dimension Taille du widget ;
Couleur Couleur du widget;
Font Police du widget;
Ancre Ancrage;
Relief Style du widget;
Bitmap Bitmap;
Cursor Curseur;

Gestion de la géométrie

Les widgets Tkinter possèdent des méthodes spécifiques de gestion de l'état de la géométrie, gérant l'organisation de toute la zone du widget. Voici les classes de gestion de la géométrie exposées par Tkinter : pack, grid, place

Méthode de géométrie Description
pack() Pack;
grid() Grid;
place() Place;
Autres extensions