Récupérer la valeur d'un Scale

Uston -  
 denak -
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

  1. denak
     
    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