Programmation événementielle avec tkinter

Programmation événementielle avec tkinter

  1. Objectifs

    • Connaitre les les méthodes de positionnement pack(), grid() et place()
    • Etre capable de disposer les widgets Tkinter avec les méthodes pack(), grid() et place().
  2. Introduction

    • Programmer un GUI (Graphic User Interface) est différent de la programmation sous console.
    • Pour un programme console, on affiche du texte avec des print et on attend l’entrée de l’utilisateur avec des input. Le code bloque tant que l’utilisateur n’a pas enfoncé la touche Entrée.
    • Maintenant que l’on sait construire l’interface graphique, c’est-à-dire placer les composants dans la fenêtre, on va voir comment définir l’interaction avec l’utilisateur.
    • Dans une application GUI, l’interface graphique qui comprend divers widgets (tels que boutons, menus, entrées de texte, …) apparaît à l’utilisateur et le programme attend que l’utilisateur interagisse au travers d’une action. On appelle cette action un événement.
    • Un événement est la survenue de quelque chose dans votre application – par exemple, l’utilisateur appuie sur une touche, clique avec sa souris ou la déplace. Votre application à certainement besoin de réagir à ces actions de l’utilisateur.
    • Parmi les événements les plus communs, on peut citer :
      • Un clic sur un bouton de la souris
      • Le déplacement de la souris
      • L’appui ou le relâchement d’une touche du clavier
      • Un clic sur la croix de fermeture de la fenêtre principale



  3. phases principales d’exécution

    • Tous les programmes d’ordinateur comportent grosso-modo trois phases principales :
      • une phase d’initialisation, laquelle contient les instructions qui préparent le travail à effectuer (appel des modules externes nécessaires, ouverture de fichiers, connexion à un serveur de bases de données ou à l’Internet, etc.).
      • une phase centrale où l’on trouve la véritable fonctionnalité du programme (c’est-à-dire tout ce qu’il est censé faire : afficher des données à l’écran, effectuer des calculs, modifier le contenu d’un fichier, imprimer, etc.).
      • une phase de terminaison qui sert à clôturer « proprement » les opérations (c’est-à-dire fermer les fichiers restés ouverts, couper les connexions externes, etc.).

    • Dans le cas d’un programme qui utilise une interface graphique, par contre, l’organisation interne est différente. On dit d’un tel programme qu’il est piloté par les événements.
    • Après sa phase d’initialisation, un programme de ce type se met en quelque sorte « en attente », et passe la main à un autre logiciel, lequel est plus ou moins intimement intégré au système d’exploitation de l’ordinateur et « tourne » en permanence.
    • Ce réceptionnaire d’événements scrute sans cesse tous les périphériques (clavier, souris, horloge, modem, etc.) et réagit immédiatement lorsqu’un événement y est détecté.
    • Lorsqu’il détecte un événement, le réceptionnaire envoie un message spécifique au programme(41), lequel doit être conçu pour réagir en conséquence.
    • Programmation événementielle avec tkinter

  4. lier un gestionnaire à un événement

    1. Définitions des termes utilisés
      • Evénement (event) : est la survenue d’une action (clavier, souris) dont votre application a besoin d’être informée.
      • Gestionnaire d’événement (event handler) : est une fonction de votre application qui est exécuté lorsqu’un événement se produit sur un widget.
      • Liaison widget-événement-gestionnaire d’événement : consiste à spécifier la fonction à exécuter lorsque l’événement se produit sur le widget.
    2. Niveaux de liaisons
      • Vous pouvez lier un gestionnaire à un événement à l’un de ces trois niveaux:
      • Premier niveau
        • Liaison au niveau d’un widget : Il est possible de lier un gestionnaire d’événement à un événement sur un widget particulier en utilisant sa méthode bind().
        • La syntaxe :
          • Programmation événementielle avec tkinter

      • Deuxième niveau
        • Liaison au niveau d’une classe : Vous pouvez lier un événement à tous les widgets d’une classe donnée en utilisant la méthode bind_class().
        • La syntaxe :
      • Troisième niveau
        • Liaison au niveau de l’application : Vous pouvez définir une liaison d’événement de telle sorte que le gestionnaire d’événement soit appelé indépendamment du widget qui a le focus ou qui se trouve sous la souris. Pour ce faire appeler la méthode bind_all() sur n’importe quel widget
        • La syntaxe :



Laisser un commentaire