Interface graphique en Python avec Tkinter 1 – Les interfaces graphiques en Pyt
Interface graphique en Python avec Tkinter 1 – Les interfaces graphiques en Python Python fournit diverses options pour développer des interfaces graphiques GUI via de nombreuses bibliothèques: 1. Tkinter : Tkinter est l’interface Python de la bibliothèque GUI Tk livrée avec Python. Nous allons l’étudier en détail sur ce chapitre. 2. wxPython : Ceci est une implémentation en Python libre et open source Python de l’interface de programmation wxWidgets. 3. PyQt : Il s’agit également d’une interface Python pour une bibliothèque d’interface graphique Qt populaire multiplate-forme. 4. JPython : JPython est un outil Python pour Java, qui donne aux scripts Python un accès transparent aux bibliothèques de classes Java. Il existe de nombreuses autres interfaces graphiques disponibles, que vous pouvez trouver sur le net. 2 – La bibliothèque graphique Tkinter Tkinter est la bibliothèque d’interface graphique standard pour Python. Python, lorsqu’il est combiné à Tkinter, fournit un moyen rapide et facile pour créer des applications graphiques. Tkinter fournit une puissante interface orientée objet simple et conviviale. La création d’une application graphique à l’aide de Tkinter est une tâche assez facile. Tout ce que vous avez à faire est de suivre les étapes suivantes: 1. Importez le module Tkinter. 2. Créez la fenêtre principale de l’application graphique via une instanciation sur la classe Tk. 3. Entrez la boucle d’évènements principale pour agir contre chaque évènement déclenché par l’utilisateur. Exemple: création d’une simple fenetre Tkinter # -*- coding: utf-8 -*- # 1)- Importation de la bibliothèque tkinter from tkinter import* # 2)- Création d'une fenêtre tkinter en faisant une instanciation de la classe Tk maFenetre = Tk() # vos widgets ici : bouton de commande, champ de saisie, labels... # 3)- Entrez la boucle d'événements principale maFenetre.mainloop() Ce qui affiche après exécution: Les Widgets Tkinter La bibliothèque Tkinter fournit divers contrôles, tels que des boutons, des étiquettes et des zones de texte utilisées dans une application graphique. Ces contrôles sont communément appelés widgets. Il existe actuellement plusieurs types de widgets dans Tkinter. Nous présentons ici les noms des principaux widgets ainsi qu’une brève description: 1. Button : le widget Button permet de créer des boutons pour votre application. 2. Canva : le widget Canva permet de dessiner des formes, telles que des lignes, des ovales, des polygones et des rectangles, dans votre application. 3. Checkbutton : le widget Checkbutton permet d’afficher un certain nombre d’options sous forme de cases à cocher. L’utilisateur peut sélectionner plusieurs options à la fois. 4. Entry : le widget Entry est utilisé pour afficher un champ de texte d’une seule ligne permettant d’accepter les valeurs d’un utilisateur. 5. Frame : le widget Frame (cadre) est utilisé en tant que widget conteneur pour organiser d’autres widgets. 6. Label : le widget Label est utilisé pour fournir une légende ou description pour les autres widgets. Il peut aussi contenir des images. 7. Listbox : le widget Listbox est utilisé pour fournir une liste d’options à un utilisateur. 8. menubutton : 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. 10. Message : le widget Message est utilisé pour afficher des champs de texte multilignes permettant d’accepter les valeurs d’un utilisateur. 11. Radiobutton : 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 option à la fois. 12. Scale : le widget Echelle est utilisé pour fournir un widget à curseur. 13. Scrollbar : le widget Scrollbar ou barre de défilement est utilisé pour ajouter une fonctionnalité de défilement à divers widgets, tels que les zones de liste. 14. Text : le widget Text est utilisé pour afficher du texte sur plusieurs lignes. 15. Toplevel : le widget Toplevel est utilisé pour fournir un conteneur de fenêtre séparé. 16. Spinbox : le widget Spinbox est une variante du widget standard Tkinter Entry, qui peut être utilisé pour sélectionner un nombre fixe de valeurs. 17. PanedWindow : le widget PanedWindow est un conteneur pouvant contenir un nombre quelconque de volets, disposés horizontalement ou verticalement. 18. LabelFrame : un labelframe est un simple widget de conteneur. Son objectif principal est d’agir comme un intercalaire ou un conteneur pour les dispositions de fenêtre complexes. 19. tkMessageBox : ce module est utilisé pour afficher des boîtes de message dans vos applications. Python et la bibliothèque de traitement d’images Pillow 1 – Pillow et manipulation d’images sur une fenêtre Tkinter 1.1- La bibliothèque Pillow Pour traiter les images, Python dispose d’une librairie nommée Pillow. Pillow constitue actuellement un fork successeur du projet PIL (Python Imaging Library). Elle est conçue de manière à offrir un accès rapide aux données contenues dans une image, elle est doté d’un pouvoir magique et puissant pour le traitement et la manipulation des différents formats de fichiers images tels que PNG, JPEG, GIF, TIFF et BMP… 1.2- Installation de la bibliothèque Pillow La bibliothèque Pillow s’installe d’une façon très simple à l’aide de l’utilitaire pip: pip install pillow 2- Insertion d’image à l’aide de la bibliothèque Pillow Maintenant que la bibliothèque Pillow est installé, elle peut être utilisée pour insérer et manipuler des images au sein d’une fenêtre Tkinter. Pour ce faire, il suffit de l’importer et de créer un objet image à partir d’un fichier : # -*- coding: utf-8 -*- from PIL import Image, ImageTk # Création de l'objet image load = Image.open("chemin_vers_le_fichier_images") # Création de la photo à partir de l'objet image photo = ImageTk.PhotoImage(load) Pour bien comprendre, nous allons traiter cela sur un exemple simple : Considérons une image nommée voiture.png Mettons l’image dans un dossier nommé images Créons un fichier python dans le même répertoire que le dossier images et mettons le code suivant: Exemple. d’insertion d’image # -*- coding: utf-8 -*- from tkinter import * from PIL import Image, ImageTk root = Tk() root.title("Tkinter window") root.geometry("300x200") # Création de l'objet image load = Image.open("images/voiture.png") # Création de la photo à partir de l'objet image photo = ImageTk.PhotoImage(load) # Placer l'image dans un label label_image = Label(root,image=photo) label_image.place(x=0, y=0) root.mainloop() Ce qui affiche après exécution : Redimensionnement de l’image La bibliothèque Pillow, permet aussi le redimensionner limage à l’aide la méthode thumbnail() en précisant entre les parenthèses la dimension en pixels: # -*- coding: utf-8 -*- # Création de l'objet image load = Image.open("images/voiture.png") # Redimensionner l'image load.thumbnail((50,50)) Liste ComboBox Tkinter 1 – Création dun ttk.ComboBox Tkinter Tkinter Combobox est une sorte de liste déroulante à choix sélectionnable par l’utilisateur. C’est une combinaison de saisie et de menu déroulant, comme vous pouvez le voir. Lorsque vous cliquez sur la flèche à droite, vous verrez un menu déroulant indiquant tous les choix possible. Pour créer une liste ComboBox, vous devez suivre les étapes suivantes : 1. Importer la bibliothèque Tkinter et le module ttk 2. Créer une liste Python contenant les éléments de la liste ComboBox 3. Créer la liste Combobox en utilisant la méthode ttk.Combobox() 4. Choisissez l’élément qui s’affiche par défaut, en indiquant son index Exemple # -*- coding: utf-8 -*- # 1) - Importation des modules nécessaires import tkinter as tk from tkinter import ttk root = tk.Tk() root.geometry('300x200') labelChoix = tk.Label(root, text = "Veuillez faire un choix !") labelChoix.pack() # 2) - créer la liste Python contenant les éléments de la liste Combobox listeProduits=["Laptop", "Imprimante","Tablette","SmartPhone"] # 3) - Création de la Combobox via la méthode ttk.Combobox() listeCombo = ttk.Combobox(root, values=listeProduits) # 4) - Choisir l'élément qui s'affiche par défaut listeCombo.current(0) listeCombo.pack() root.mainloop() Ce qui affiche après exéction : 2 – Associer une action à la liste combobox ( bind action) Vous l’avez sans doute remarqué, que si vous faite la sélection d’un élément de la liste Combobox, aucun évenement ne se produit, tout simplement par ce qu’on a associer aucune action à la liste combobox. Dans ce paragraphe, nous allons montrer, comment créer une action liée à cette combobox. 2.1 – On crée une action liée ( bind action) à l’aide de la commande: listeCombo.bind("<<ComboboxSelected>>", action) 2.2 – On crée la méthode action def action(event): # Obtenir l'élément sélectionné select = listeCombo.get() print("Vous avez sélectionné : '", select,"'") 2.3 Code finale de la liste combobox avec action liée # -*- coding: utf-8 -*- # 1) - Importation des modules nécessaires import tkinter as tk from tkinter import ttk root = tk.Tk() root.geometry('300x200') def action(event): # Obtenir l'élément sélectionné select = listeCombo.get() print("Vous avez sélectionné : '", select,"'") labelChoix = tk.Label(root, text = "Veuillez faire un choix !") labelChoix.pack() # 2) - créer la liste Python contenant les éléments de la liste Combobox listeProduits=["Laptop", "Imprimante","Tablette","SmartPhone"] # 3) - Création de la Combobox via la méthode ttk.Combobox() listeCombo = ttk.Combobox(root, values=listeProduits) # 4) - Choisir l'élément qui s'affiche par défaut listeCombo.current(0) listeCombo.pack() listeCombo.bind("<<ComboboxSelected>>", action) root.mainloop() Le module Filedialogue Python Tkinter 1- Le module Filedialogue et les méthodes associées FileDialog est un module avec des fonctions de dialogues d’ouverture et de sauvegarde, qui pourra vous aider à uploads/s3/ les-interfaces-python.pdf
Documents similaires
-
15
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 20, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.6747MB