INTERFACE GRAPHIQUE AVEC PYTHON (GUI) 1/2
Python est un langage de programmation qui permet de concevoir des Logiciels interface graphique. Néanmoins avant d’entre dans le monde meilleur des GUI(Graphical User Interface) , nous devons connaitre certaines notions très communes dans la programmation :
– Programmation Événementielle : Selon Wikipédia, la programmation événementielle est un paradigme de programmation fondé sur les événements. Elle s’oppose à la programmation séquentielle. Le programme sera principalement défini par ses réactions aux différents événements qui peuvent se produire, c’est-à-dire des changements d’état de variable, par exemple l’incrémentation d’une liste, un mouvement de souris ou de clavier.
– Les Bibliothèques : Selon Wikipédia, une bibliothèque logicielle est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes. Les bibliothèques sont enregistrées dans des fichiers semblables, voire identiques aux fichiers de programmes , sous la forme d’une collection de fichiers de code objet rassemblés accompagnée d’un index permettant de retrouver facilement chaque routine
– Porgrammation Orienté Objet : La programmation orientée objet (POO) permet de La programmation orientée objet impose des structures solides et claires. Les objets peuvent interagir entre eux, cela facilite grandement la compréhension du code et sa maintenance. On oppose souvent la programmation objet à la programmation procédurale, la première étant plus « professionnelle » que l’autre car plus fiable et plus propre
Avec Python, l’une des bibliothèques graphique la plus utilisée jusqu’à présent est la bibliothèque Tkinter, qui est une adaptation de la bibliothèque Tk développée à l’origine pour le langage Tcl . Plusieurs autres bibliothèques graphiques fort intéressantes ont été proposées pour Python : wxPython, pyQT, pyGTK(la GUI de l’environnement Gnome ) .
Nous commencerons des programmes simples avec Tkinter puis nous passerons en Orienté Objet avec PyGTK. Le module Tkinter est généralement intégré à votre Python au cours de son installation. Maintenant, débutons le code !!!
Créeons un fichier ayiyikoh.py et qui contiendra notre première application graphique
from Tkinter import * #import de la bibliothèque graphique
fen = Tk() #creation d’un objet Tk nommé fen text = Label(fen, text = « Bienvenue au FabLab AYIYIKOH ») #creation d’un Label enfant de fen text.pack() #affichage du texte boul = Button(fen, text=’Quitter’, command=fen.destroy) #creation d’un Button enfant de fen boul.pack() #affichage du button fen.mainloop() #gestionnaire d’evenement, attendant une action |
En exécutant ce code, on obtient le résultat suivant :
Et voilà, une fenêtre s’affiche avec le mot de Bienvenue.
Il existe 15 classes de base pour les widgets Tkinter. Il faut noter aussi que chaque classe à ses méthodes spécifiques que nous ne détaillerons pas dans le tableau suivant
Widget | Description |
Button | Un bouton classique, à utiliser pour provoquer l’exécution d’une commande quelconque. |
Canvas | Un espace pour disposer divers éléments graphiques. Ce widget peut être utilisé pour dessiner, créer des éditeurs graphiques, et aussi pour implémenter des widgets personnalisés |
Checkbutton | Une « case à cocher » qui peut prendre deux états distincts (la case est cochée ou non). Un clic sur ce widget provoque le changement |
Entry | Un champ d’entrée, dans lequel l’utilisateur du programme pourra insérer un texte quelconque à partir du clavier. |
Frame | Une surface rectangulaire dans la fenêtre, où l’on peut disposer d’autres widgets. Cette surface peut être colorée. Elle peut aussi être |
Label | Un texte (ou libellé) quelconque (éventuellement une image). |
Listbox | Une liste de choix proposés à l’utilisateur, généralement présentés dans une sorte de boîte. On peut également configurer la Listbox de telle manière qu’elle se comporte comme une série de « boutons radio » ou de cases à cocher. |
Menu | Un menu. Ce peut être un menu déroulant attaché à la barre de titre, ou bien un menu « pop up » apparaissant n’importe où à la suite d’un clic. |
Menubutton | Un bouton-menu, à utiliser pour implémenter des menus déroulants. |
Message | Permet d’afficher un texte. Ce widget est une variante du widget Label, qui permet d’adapter automatiquement le texte affiché à une certaine taille ou à un certain rapport largeur/hauteur. |
Radiobutton | Représente (par un point noir dans un petit cercle) une des valeurs d’une variable qui peut en posséder plusieurs. Cliquer sur un « bouton radio » donne la valeur correspondante à la variable, et « vide » tous les autres boutons radio associés à la même variable |
Scale | Vous permet de faire varier de manière très visuelle la valeur d’une variable, endéplaçant un curseur le long d’une règle. |
Scrollbar | « ascenseur » ou « barre de défilement » que vous pouvez utiliser en associationavec les autres widgets : Canvas, Entry, Listbox, Text. |
Text | Affichage de texte formatté. Permet aussi à l’utilisateur d’éditer le texte affiché. Des images peuvent également être insérées. |
Toplevel |
Une fenêtre affichée séparément, « par-dessus ». |
Dans le prochain article, nous allons voir comment créer les principaux widgets énoncés, ainsi leurs différentes propriétés . La suite sur le lien suivant :