Python - Programmation GUI (Tkinter)

Python fournit diverses options pour développer des interfaces utilisateur graphiques (GUI). Les plus importants sont énumérés ci-dessous.

  • Tkinter- Tkinter est l'interface Python de la boîte à outils Tk GUI livrée avec Python. Nous examinerions cette option dans ce chapitre.

  • wxPython - Ceci est une interface Python open-source pour wxWindows http://wxpython.org.

  • JPython - JPython est un port Python pour Java qui donne aux scripts Python un accès transparent aux bibliothèques de classes Java sur la machine locale http://www.jython.org.

Il existe de nombreuses autres interfaces disponibles, que vous pouvez trouver sur le net.

Programmation Tkinter

Tkinter est la bibliothèque GUI standard pour Python. Python lorsqu'il est combiné avec Tkinter fournit un moyen rapide et facile de créer des applications GUI. Tkinter fournit une puissante interface orientée objet à la boîte à outils Tk GUI.

La création d'une application GUI à l'aide de Tkinter est une tâche facile. Tout ce que vous avez à faire est d'effectuer les étapes suivantes -

  • Importez le module Tkinter .

  • Créez la fenêtre principale de l'application GUI.

  • Ajoutez un ou plusieurs des widgets mentionnés ci-dessus à l'application GUI.

  • Entrez dans la boucle d'événements principale pour agir contre chaque événement déclenché par l'utilisateur.

Exemple

#!/usr/bin/python

import Tkinter
top = Tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

Cela créerait une fenêtre suivante -

Widgets Tkinter

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

Il existe actuellement 15 types de widgets dans Tkinter. Nous présentons ces widgets ainsi qu'une brève description dans le tableau suivant -

N ° Sr. Opérateur et description
1 Bouton

Le widget Bouton est utilisé pour afficher les boutons dans votre application.

2 Toile

Le widget Canvas est utilisé pour dessiner des formes, telles que des lignes, des ovales, des polygones et des rectangles, dans votre application.

3 Bouton à cocher

Le widget Checkbutton est utilisé pour afficher un certain nombre d'options sous forme de cases à cocher. L'utilisateur peut sélectionner plusieurs options à la fois.

4 Entrée

Le widget Entrée est utilisé pour afficher un champ de texte sur une seule ligne pour accepter les valeurs d'un utilisateur.

5 Cadre

Le widget Frame est utilisé comme widget conteneur pour organiser d'autres widgets.

6 Étiquette

Le widget Étiquette est utilisé pour fournir une légende sur une seule ligne pour d'autres widgets. Il peut également contenir des images.

sept Listbox

Le widget Listbox est utilisé pour fournir une liste d'options à un utilisateur.

8 Bouton de menu

Le widget Menubutton est utilisé pour afficher les menus dans votre application.

9 Menu

Le widget Menu est utilisé pour fournir diverses commandes à un utilisateur. Ces commandes sont contenues dans Menubutton.

dix Message

Le widget Message est utilisé pour afficher des champs de texte multilignes pour accepter les valeurs d'un utilisateur.

11 Bouton radio

Le widget Radiobutton est utilisé pour afficher un certain nombre d'options sous forme de boutons radio. L'utilisateur ne peut sélectionner qu'une seule option à la fois.

12 Échelle

Le widget Echelle est utilisé pour fournir un widget curseur.

13 Barre de défilement

Le widget Barre de défilement est utilisé pour ajouter une capacité de défilement à divers widgets, tels que les zones de liste.

14 Texte

Le widget Texte est utilisé pour afficher du texte sur plusieurs lignes.

15 Haut niveau

Le widget Toplevel est utilisé pour fournir un conteneur de fenêtre séparé.

16 Spinbox

Le widget Spinbox est une variante du widget Tkinter Entry standard, qui peut être utilisé pour sélectionner parmi un nombre fixe de valeurs.

17 PanedWindow

Un PanedWindow est un widget conteneur qui peut contenir n'importe quel nombre de volets, disposés horizontalement ou verticalement.

18 LabelFrame

Un labelframe est un simple widget conteneur. Son objectif principal est d'agir comme un espaceur ou un conteneur pour des dispositions de fenêtres complexes.

19 tkMessageBox

Ce module permet d'afficher des boîtes de messages dans vos applications.

Étudions ces widgets en détail -

Attributs standard

Voyons comment certains de leurs attributs communs, tels que les tailles, les couleurs et les polices, sont spécifiés.

  • Dimensions

  • Colors

  • Fonts

  • Anchors

  • Styles de relief

  • Bitmaps

  • Cursors

Étudions-les brièvement -

Gestion de la géométrie

Tous les widgets Tkinter ont accès à des méthodes de gestion de la géométrie spécifiques, qui ont pour but d'organiser les widgets dans la zone de widget parent. Tkinter expose les classes de gestionnaire de géométrie suivantes: pack, grid et place.

  • La méthode pack () - Ce gestionnaire de géométrie organise les widgets en blocs avant de les placer dans le widget parent.

  • La méthode grid () - Ce gestionnaire de géométrie organise les widgets dans une structure de type tableau dans le widget parent.

  • La méthode place () - Ce gestionnaire de géométrie organise les widgets en les plaçant dans une position spécifique dans le widget parent.

Étudions brièvement les méthodes de gestion de la géométrie -