Une application Tkinter avec une classe


Une application Tkinter avec une classe

  1. Objectifs

    • Etre capable de programmer des applications tkinter avec des classes
  2. Introduction

    • La programmation orientée objet convient particulièrement bien au développement d’applications avec interface graphique.
    • Il est vivement conseillé de développer ses applications Tkinter en utilisant une classe.
    • Cela présente l’avantage d’encapsuler l’application de manière efficace et d’éviter ainsi l’utilisation de variables globales. Souvenez-vous, elles sont à bannir définitivement ! Une classe crée un espace de noms propre à votre application, et toutes les variables nécessaires seront ainsi des attributs de cette classe.



  3. Exemple d’utilisation

    1. Exemple sans utilisation classe
    2. Exemple avec utilisation classe
      • Reprenons notre petit exemple avec un label et un bouton :
  4. Créer une classe

    • C’est mieux de mettre notre application dans une classe:
    • Pour créer une application en tant que classe:
      1. Nommer la classe
        • La classe doit porter un nom qui commence par une majuscule, comme recommandé dans les bonnes pratiques de la PEP8.
        • L’argument passé dans les parenthèses indique que notre classe Application hérite de la classe tk.Tk.
      2. Le constructeur
        • Ligne 4 de l’exemple. On crée un constructeur, c’est-à-dire une méthode qui sera exécutée lors de l’instanciation de notre classe (à la ligne 16).
        • Ligne 5 de l’exemple. On appelle ici le constructeur de la classe mère tk.Tk.__init__().
        • Application dérive de tkinter.Tk, nous devons donc appeler le constructeur de tkinter.Tk (tkinter.Tk.__init__()).
      3. Initialiser l’interface graphique
        • Ligne 6 de l’exemple. On appelle la méthode self.creer_widgets() de notre classe Application. Pour rappel, le self avant le .creer_widgets() indique qu’il s’agit d’une méthode de notre classe (et non pas d’une fonction classique).
        • Ligne 8 de l’exemple. La méthode .creer_widgets() va créer des widgets dans l’application.
        • Ligne 9 de l’exemple. On crée un label en instanciant la classe tk.Label(). Notez que le premier argument passé est maintenant self (au lieu de racine précédemment) indiquant la fenêtre dans laquelle sera construit ce widget.
        • Ligne 9 de l’exemple. De même on crée un widget bouton en instanciant la classe tk.Button(). Là aussi, l’appel à la méthode .quit() se fait par self.quit puisque la fenêtre est instanciée dans la variable self. Par ailleurs, on ne met ni parenthèses ni arguments à self.quit car il s’agit d’une fonction callback.
        • Lignes 11 et 12 de l’exemple. On place les deux widgets dans la fenêtre avec la méthode .pack().
        • Ligne 13 de l’exemple. Ici on autorise le lancement de notre application Tkinter en ligne de commande (python tk_application.py), ou bien de réutiliser notre classe en important tk_application.py en tant que module (import tk_application) (voir le cours Création de modules).
        • Ligne 14 de l’exemple. On instancie notre application.
        • Ligne 15 de l’exemple. On donne un titre dans la fenêtre de notre application. Comme on utilise de petits widgets avec la méthode pack(), il se peut que le titre ne soit pas visible lors du lancement de l’application. Toutefois, si on "étire" la fenêtre à la souris, le titre le deviendra. On pourra noter que cette méthode .title() est héritée de la classe mère Tk.
        • Ligne 16 de l’exemple. On lance le gestionnaire d’événements.
      4. Source:https://python.sdv.univ-paris-diderot.fr/20_tkinter/
  5. Application

    1. Énoncé
      • On veut utiliser une classe Application pour créer une calculatrice dans laquelle on entre une expression mathématique à calculer (1254 x 1254), écrite en langage Python, et dont on veut faire afficher le résultat dans la fenêtre, juste en-dessous, et dont le visuel est le plus proche possible de l’image suivant:
      • Exercices événements tkinter en python

      • Un appui sur la touche Entrée du clavier déclenche l’opération de calcul et affiche le résultat
      • Un appui sur la touche echap du clavier permet de revenir à l’état initial
    2. Solution




Sommaire du cours Python



Riadh HAJJI

Laisser un commentaire

Abonnez vous à notre chaîne YouTube gratuitement