Correction exercice Tkinter avec classe 02


Correction exercice Tkinter avec classe 02

  1. Objectifs
    • Etre capable de programmer des applications tkinter avec des classes

  2. Rappel
    • Ce projet a pour but de découvrir la programmation en Python utilisant une interface graphique.
    • Il existe plusieurs modules Python permettant d’exploiter les interfaces graphiques.
    • Le plus simple est le module tkinter présent lors de l’installation du langage Python.
    • On utilisera l’environnement idle (version 3.8.5) pour coder en Python.
    • L’objectif de ce TP est de vous amener à développer un interface graphique en Python, basée sur le package Tkinter.
    • Cette bibliothèque est un pont (une façade) vers l’interface graphique Tk, qui était l’interface d’un autre langage de script connu nommé Tcl.
    • Au bout de ce TP, vous aurez une calculatrice simple.
    • Une autre façon de faire de la mise en page est d’utiliser la méthode grid plutôt que pack ou place. Cette fois-ci, on place les composants dans un conteneur simplement en précisant à quelle ligne et à quelle colonne on les place.
    • Le widget Entry est un widget Tkinter standard utilisé pour saisir ou afficher une seule ligne de texte.
    • Le texte est affiché dans une police de caractère “Font” et de taille 20. (font=(“Courier”, 20)).
    • Pour récupérer le texte actuel de l’entrée, utilisez la méthode get :
    • s = e.get ()
    • Vous pouvez également lier le widget d’entrée à une instance de StringVar et définir ou obtenir le texte de l’entrée via cette variable:
    • v = StringVar ()
      e = Entrée (maître, variable text = v)
      e.pack ()
    • Vous pouvez choisir entre les deux méthodes suivantes pour définir le texte d’un Entrywidget. Pour les exemples, supposons la bibliothèque importée import tkinter as tket la fenêtre racine root = tk.Tk().
    • Utiliser delete et insert
      • Widget Entry fournit des méthodes delete et insert qui peuvent être utilisées pour définir son texte sur une nouvelle valeur.
      • Tout d’ abord, vous devrez enlever tout ancien, ancien texte de Entry avec delete qui a besoin des positions où commencer et terminer la suppression.
      • Puisque nous voulons supprimer l’ancien texte complet, nous commençons 0et finissons à l’endroit où se trouve actuellement la fin.
      • Nous pouvons accéder à cette valeur via END. Ensuite, le Entry est vide et nous pouvons insérer new_text à la position 0.
      • entry = tk.Entry(root)
        new_text = "Example text"
        entry.delete(0, tk.END)
        entry.insert(0, new_text)
    • Utilisation StringVar
      • Vous devez créer un nouvel objet StringVar appelé entry_text dans l’exemple.
      • En outre, votre widget Entry doit être créé avec un argument de mot-clé textvariable.

      • Ensuite, chaque fois que vous changez entry_text avec set, le texte apparaîtra automatiquement dans le widget Entry.
      • entry_text = tk.StringVar()
        entry = tk.Entry(root, textvariable=entry_text)
        new_text = "Example text"
        entry_text.set(new_text)
    • Exemple
      • import tkinter as tk
        
        def button_1_click():
            # define new text (you can modify this to your needs!)
            new_text = "Button 1 clicked!"
            # delete content from position 0 to end
            entry.delete(0, tk.END)
            # insert new_text at position 0
            entry.insert(0, new_text)
        
        def button_2_click():
            # define new text (you can modify this to your needs!)
            new_text = "Button 2 clicked!"
            # set connected text variable to new_text
            entry_text.set(new_text)
        
        root = tk.Tk()
        
        entry_text = tk.StringVar()
        entry = tk.Entry(root, textvariable=entry_text)
        
        button_1 = tk.Button(root, text="Button 1", command=button_1_click)
        button_2 = tk.Button(root, text="Button 2", command=button_2_click)
        
        entry.pack(side=tk.TOP)
        button_1.pack(side=tk.LEFT)
        button_2.pack(side=tk.LEFT)
        
        root.mainloop()

  3. Exercice 04
    1. Énoncé
    2. Correction



  4. Exercice 02
    1. Énoncé
    2. Solution

  5. Exercice 03
    1. Énoncé
    2. Solution




Sommaire du cours Python



Laisser un commentaire

Veuillez désactiver votre bloqueur de publicités ou ajouter ce site à la liste blanche !

Abonnez vous à notre chaîne YouTube gratuitement