récupérer une valeur de scale
Bonjour à toute la troupe !
J'ai essayé de compiler un peu toutes les réponses trouvées sur le sujet, et de les adapter, mais impossible de faire fonctionner ma soluce :marteau:.
Voici le contexte.
Je suis en train de créer une classe ApplicationDes pour faire un lancer de dés dans une fenêtre. Un curseur permet de choisir le nombre de dés à lancer, et un bouton doit faire le lancer en question. Cette appli est encapsulée dans une classe, donc.
Je bute sur le pb suivant : comment récupérer la valeur du curseur pour qu'elle s'affiche dans le libellé du bouton ?
Je pense que mon code a la bonne structure, et qu'il s'agit d'un bête pb de syntaxe ! :triste:
Voici la classe en question :
Code:
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 36
|
#_*_ coding: iso-8859-1 _*_
from Tkinter import*
class ApplicationDes(Tk) :
#constructeur
def __init__(self,parent):
Tk.__init__(self,parent)
self.parent=parent
self.initialize()
#fonction qui modifie le texte de bouton en fonction de la valeur du curseur
def affiche(txt):
valeur=curseur.get()
bouton.config(text ="Lancez "+str(valeur)+" dés !")
#initialisation des widgets
def initialize(self) :
self.grid()
#le curseur pour le nombre de dés
self.curseur=Scale(self, length=500, from_=1, to=20, orient=HORIZONTAL, label ='Nombre de dés à lancer',troughcolor ='dark grey',
sliderlength =20, tickinterval =1,command=affiche)
self.curseur.grid(column=0,row=0,sticky='EW')
#le bouton pour lancer les dés
bouton=Button(self,text="Lancez les dés !")
bouton.grid(column=0,row=1)
#auto redimensionnement de la fenêtre
self.resizable(True,True)
#création d'une application
if __name__=="__main__":
app = ApplicationDes(None)
app.title("Les dés sont jetés !")
app.mainloop() |
Et voici le message d'erreur obtenu :
Code:
1 2 3 4 5 6 7 8 9
|
Traceback (most recent call last):
File "C:\Python24\Scripts\des\applicationDes.py", line 41, in -toplevel-
app = ApplicationDes(None)
File "C:\Python24\Scripts\des\applicationDes.py", line 14, in __init__
self.initialize()
File "C:\Python24\Scripts\des\applicationDes.py", line 26, in initialize
sliderlength =20, tickinterval =1,command=affiche)
NameError: global name 'affiche' is not defined |
Visiblement, il ne veut pas reconnaître affiche, mais alors là, pourquoi donc ?8O
Merci d'avance pour votre aide, et toutes mes excuses si c'est marqué noir sur blanc quelque part !
Gram'