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 :

Impossible d'entrer dans ma boucle (Changement OptionMenu)


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 33
    Points : 31
    Points
    31
    Par défaut Impossible d'entrer dans ma boucle (Changement OptionMenu)
    Bonjour tout le monde,

    je n'arrive pas a entrer dans ma boucle a chaque changement de mon OptionMenu pourtant ca s'affiche bien dans mon terminal

    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
     
        tkinter.Label(window2, text="Nombre d'article : ").grid(row=8, column=1, columnspan=2)
        OptionList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] 
        var = StringVar(window2)
        var.set(OptionList[0])
        nb_article = var.trace_add('write', lambda *args: print(var.get()))
        drop = tkinter.OptionMenu(window2, var, *OptionList).grid(row=9, column=1, columnspan=2)
        row = 10
        if len(nb_article) > 10:
            pass
        else:
            while nb_article != 0:
                tkinter.Label(window2, text="Article ").grid(row=row, column=1, columnspan=2)
                row += 1
                article = tkinter.Entry(window2).grid(row=row, column=1, columnspan=2)
                row += 1
                nb_article -= 1
        window2.mainloop()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Salut,

    Si vous avez écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          nb_article = var.trace_add('write', lambda *args: print(var.get()))
    vous devriez voir s'afficher un message d'erreur et les instructions qui suivent ne sont pas exécutées.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Non justement je n'ai pas de message d'erreur mais j'ai bien le chiffre sur lequel je click

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Citation Envoyé par mac79 Voir le message
    Non justement je n'ai pas de message d'erreur mais j'ai bien le chiffre sur lequel je click
    Lancez l'interpréteur Python et entrez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import tkinter as tk
    >>> root = tk.Tk()
    >>> v = tk.StringVar()
    >>> v.trace('write', print)
    Vous devriez avoir l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _tkinter.TclError: bad operations "write": should be one or more of rwua
    >>>
    Après, pourquoi elle n'apparait pas sur la console lorsque vous lancez votre programme?
    Peut être qu'elle n'est jamais exécutée et la cause n'est pas dans le le bout de code que montrez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    quand j'utilise cet partit du code ca marche pourtant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        tkinter.Label(window2, text="Nombre d'article : ").grid(row=8, column=1, columnspan=2)
        OptionList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] 
        var = StringVar(window2)
        var.set(OptionList[0])
        nb_article = var.trace_add('write', lambda *args: var.get())
        drop = tkinter.OptionMenu(window2, var, *OptionList).grid(row=9, column=1, columnspan=2)
        row = 10
        nb = 1
     
        if len(nb_article) > 10:
            nb_article = 0
            print(nb_article)
    En fait le probleme c'est entre bien dans ma condition la premiere fois, mais lorsque je change de nombre il n'entre plus dans la condition mais change bien la valeur de ma variable nb_article...

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Salut,

    Citation Envoyé par mac79 Voir le message
    c'est entre bien dans ma condition la premiere fois, mais lorsque je change de nombre il n'entre plus dans la condition mais change bien la valeur de ma variable nb_article...
    Vous avez raison, çà ne plante pas avec trace_add (qui est un ajout récent mais avec trace oui).
    Néanmoins, si vous aviez testé avec l'interpréteur Python, vous auriez constaté que çà retourne une chaîne de caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> v.trace_add('write', print)
    '32954432print'
    >>>
    qui est un identifiant à utiliser pour faire un "remove"... et sans vrai rapport avec ce qu'il se passe dans l'OptionMenu.

    De plus en écrivant var.trace_add('write', lambda *args: var.get())
    la fonction anonyme qui sera appelée exécute var.get() mais çàne récupère rien nulle part.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2011, 10h31
  2. impossible d'incrémenter dans une boucle for
    Par slayer21 dans le forum MATLAB
    Réponses: 13
    Dernier message: 29/07/2009, 14h09
  3. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  4. [Spip] Impossible d'entrer dans l'espace privé de mon site
    Par ulrichnansi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 25/03/2008, 09h17
  5. Impossible d'entrer dans la fonction
    Par zemeilleurofgreg dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/09/2007, 10h45

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