IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

[Tkinter] Scale [Fait]


Sujet :

Tkinter Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Points : 161
    Points
    161
    Par défaut [Tkinter] Scale
    Bonjour,
    Je souhaite affiche une fenetre pop-up a mon application contenant 3 widgets de type "Scale"
    chaque Scale fait appel a ma fonction "updateLabel" pour afficher la valeur définiesous le Scale
    Problème: Je n'arrive pas a passer le label en parametre de ma fonction updateLabel
    voici un morceau de mon code:

    Code : 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
    36
     
    def updateLabel(self, x, lab):
    lab.configure(text='Valeur actuelle = ' + str(x))
     
    def modif_pixel(self, event):
    #x = str(event.x)
    #y = str(event.y)
    #print x,y
     
    fpixel= Tk()
     
    #composante rouge
    labR = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Rouge :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda parametre1=labR : self.updateLabel(parametre1)).pack()
    labR.pack()
     
    #composante verte
    labV = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Verte :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda parametre1=labV : self.updateLabel(parametre1)).pack()
    labV.pack()
     
    #composante bleue
    labB = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Bleue :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda parametre1=labB : self.updateLabel(parametre1)).pack()
    labB.pack()
     
    fpixel.mainloop()
    PS: j'ai lu qu'automatiquement la valeur du scale est envoyé a la fonction (ici x) mais comment dois je faire pour passer un autre parametre ?

    Merci pour votre aide

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    tu ajoutes seulement x seul en paramétre a ton instruction lambda.
    sinon ce paramétre ne passera jamais. ca donne:

    Code : 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
    36
    37
    38
    39
    from Tkinter import *
     
     
    def updateLabel(x,lab):
        lab.configure(text='Valeur actuelle = ' + str(x))
     
    def modif_pixel(event):
        #x = str(event.x)
        #y = str(event.y)
        #print x,y
        pass
     
    fpixel= Tk()
     
    #composante rouge
    labR = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Rouge :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda x,parametre1=labR : updateLabel(x,parametre1)).pack()
    labR.pack()
     
    #composante verte
    labV = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Verte :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda x,parametre1=labV : updateLabel(x,parametre1)).pack()
    labV.pack()
     
    #composante bleue
    labB = Label(fpixel)
    Scale(fpixel, length=400, orient=HORIZONTAL, label ='Composante Bleue :',
    troughcolor ='dark grey', sliderlength =20,
    showvalue =0, from_=0, to=255, tickinterval =25,
    command=lambda x,parametre1=labB : updateLabel(x,parametre1)).pack()
    labB.pack()
     
    fpixel.mainloop()


    => FAQ: http://python.developpez.com/faq/?pa...onCommandParam

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tkinter] Scale
    Par frizou11 dans le forum Tkinter
    Réponses: 3
    Dernier message: 03/05/2006, 23h30
  2. [Tkinter]
    Par KymZen dans le forum Tkinter
    Réponses: 7
    Dernier message: 08/03/2005, 08h28
  3. [Tkinter] Binder le bouton de fermeture d'un Tk()
    Par jc_isd dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/02/2005, 16h11
  4. Réponses: 3
    Dernier message: 26/10/2004, 07h31
  5. Réponses: 3
    Dernier message: 16/08/2004, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo