IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

ol9245

Python3 : Surveiller une variable dans le GUI tkinter

Noter ce billet
par , 09/03/2015 à 21h50 (1164 Affichages)
tkinter propose des objets spécifiques pour stoker les variables usuelles :
chaine de caractère : StringVar()
entier : IntVar()
double : DoubleVar()
booléen : BooleanVar()

L'intérêt de ces objets est que l'on peut associer un callback à la modification de la valeur de la variable, quelque soit la cause de ce changement (saisie directe dans un widget Entry ou résultat d'un calcul).

Voici une illustration : c'est une calculette qui calcule le résultat au vol : pas besoin d'appuyer sur la touche <Retour>. Le mécanisme mis en oeuvre est d'associer au widget Entry un callback qui tente de calculer le résultat de la formule à chaque fois que celle-ci est modifiée.

Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import tkinter as tk
from math import *
import string
 
res=''
res0=''
def evaluer(*args):
    global res, res0, tk_texte, tk_resultat
    txt = tk_s.get()
    try:
        res0 = res
        res = '= ' + str(eval(txt))
    except:
        res = '?'
    tk_resultat.configure(text = res) # change l'attribut text de l'objet resultat
 
# ----- Programme principal : -----
 
# création des objets tinker
tk_root = tk.Tk() # crée la fenêtre principale
tk_s = Tk.StringVar() # la chaine en cours de saisie
tk_entree = tk.Entry(tk_root, textvariable=tk_s) # crée un widget "ligne de saisie" dans fenetre. Associe la saisie à la variable tk_s
tk_resultat = tk.Label(tk_root) # crée un widget texte pour le résultat du calcul
 
# mise en page
tk_entree.pack()
tk_resultat.pack() 
 
# définition des événements 
# Le seul événement capturé est la modification de la chaine en cours de saisie
tk_s.trace_variable("w", evaluer) 
 
# lancement
tk_entree.focus_set() # donne le focus à la boite de saisie
tk_root.mainloop() # lance l'appli

Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Viadeo Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Twitter Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Google Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Facebook Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Digg Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Delicious Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog MySpace Envoyer le billet « Python3 : Surveiller une variable dans le GUI tkinter » dans le blog Yahoo

Mis à jour 24/04/2016 à 20h54 par LittleWhite (Coloration code)

Tags: python3, tkinter
Catégories
Programmation , Python

Commentaires