Widget Entry

Fenêtre - Widgets

Syntaxe du widget Entry : ttk.Entry(cible [, options]).pack().

Il existe deux façons d'utiliser ce widget :

  1. Méthode 1 (recommandée) : exactement comme le widget label (grâce à une variable tk.IntVar(), tk.DoubleVar(), tk.DoubleVar... associée aux méthodes set() et get()).
  2. Méthode 2 : comme indiqué ci-dessous.

Méthode 2 : le widget Entry possède trois méthodes importantes.
nom_zoneSaisie = ttk.Entry(cible [, options]) et puis nom_zoneSaisie.pack()

  • nom_zoneSaisie.get() permet de lire/récupérer le contenu de la zone de saisie.
  • nom_zoneSaisie.insert(i, s) permet d'insérer la chaîne s, à partir du caractère d'index i de la zone de saisie (si une chaîne est déjà présente) ou à partir du début sinon.
  • nom_zoneSaisie.delete(0, 'end') permet de supprimer la totalité de la zone de saisie.
Tables étape 6

1/ Pour récupérer le résultat tapé dans la zone de saisie, on utilise la méthode get() du widget entry.
En procédant comme dans le code fourni en exemple :

  • créer une fonction afficheResultat() qui récupère le contenu de la zone de saisie entReponse par la méthode get() et l'affiche dans la console (print) ;
  • créer un bouton nommé btnResultat qui appelle la fonction afficheResultat lorsqu'il est cliqué, le positionner, tester le code ;
  • modifier la fonction afficheResultat() afin que le résultat apparaisse dans le label lblResultat grâce à la méthode set(), tester le code ;

En utilisant la méthode focus_force(), placer le pointeur de la souris dans le widget entReponse (cf. exemple fourni).

2/ A ce stade, l'application affiche le résultat du calcul mais ne vérifie pas s'il est juste ou non : modifier à nouveau la fonction afficheResultat() de façon à ce qu'elle effectue cette vérification et affiche un message (félicitations en cas de succès ou encouragements dans le cas contraire) dans le label lblResultat.

3/ Il apparaît qu'un bouton "Recommencer" serait bien pratique...
Le tirage des nombres aléatoires doit être confié à une nouvelle fonction nommée calcul() qui met également à jour le label lblResultat dont le texte doit être transfomé en texte variable associé à une chaîne svCalcul.
Cette fonction peut également effacer la zone de saisie (cf. ci-dessus) ainsi que le label lblResultat.
Attention, les variables contenant les nombres aléatoires (appellons les a et b) sont maintenant créées dans la fonction calcul() et non dans le programme principal or la fonction afficheResultat() a besoin de connaître ces variables a et b pour vérifier le résultat du calcul. Il faut donc déclarer a et b comme globales dans la fonction calcul(), ainsi a et b sont accessibles dans tout le programme y compris dans la fonction afficheResultat().

Il n'est pas très pratique de devoir cliquer sur un bouton pour effectuer la vérification du calcul...

Précédent A suivre...

Réaliser l'interface suivante : lorsqu'on clique sur le bouton, le mot de passe tapé dans la première zone de saisie s'affiche dans la seconde.
Exercice entry


Code


Commentaires

L'attribut width permet de spécifier la largeur de la zone de saisie.
L'attribut show permet de remplacer les caractères entrés par un symbole (ici le symbole "*" usuel pour les mots de passe sous windows).

La fonction afficheZoneSaisie() est l'événement déclenché par le bouton. Cette fonction ne produit ici qu'un affichage dans la console.
Noter l'absence de parenthèses dans command=afficheZoneSaisie et non pas command=afficheZoneSaisie().

La méthode focus_force() permet de placer le pointeur de la souris dans le champ de saisie (sans cette instruction, il faut cliquer dans la zone de saisie avant de taper du texte).

Utiliser des ressources web