Récupérer la valeur d'un Scale

Fermé
Uston - 6 janv. 2018 à 18:48
 denak - 7 janv. 2018 à 18:49
Bonjour, je débute en codage Python et j'aurais besoin d'aide pour réaliser un programme à l'aide de Tkinter
Voici la partie du code où je suis bloqué :


from tkinter import *

def nouvellevaleur(x):
p=x
return(p)


fenetre = Tk()

scale2=Scale(fenetre,orient='horizontal',from_=1,to=1000,resolution=1,tickinterval=50,length=1000,label='p',command=nouvellevaleur)

p=scale2.get()
scale2.grid(row=2)

fenetre.mainloop()




Je cherche à récupérer dans la variable p la valeur du Scale, cependant, ce code laisse p=1 peu importe la position du Scale,
Merci pour votre aide



1 réponse

Il y a plusieurs façon de faire, si tu veux affecter une variable hors de ta fonction, il faut la déclarer en global dans ta fonction.

def nouvellevaleur(x):
    global p
    p = x

fenetre = Tk()

scale2 = Scale(
    fenetre,
    orient='horizontal',
    from_=1,
    to=1000,
    #resolution=1,
    tickinterval=50,
    #increment=50,
    length=1000,
    label='p',
    command=nouvellevaleur,
)
scale2.grid(row=2)

p = 50
scale2.set(p)
b1 = Button(
    fenetre,
    text='valeur p',
    command=lambda : print(p),
)
b1.grid()

b2 = Button(
    fenetre,
    text='valeur scale2',
    command=lambda : print(scale2.get()),
)
b2.grid()

fenetre.mainloop()


Maintenant, y a t-il une utilité à cette fonction sachant que tu peux récupérer la valeur courant du scale avec get() ? (bouton 2)
Généralement les callbacks passés à une commande tkinter servent à faire autre chose qu'à affecter une nouvelle valeur à une variable.
0