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 :

Ajouter des Labels/Buttons sur une fenetre dans une def [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Ajouter des Labels/Buttons sur une fenetre dans une def
    Bonjour à tous!
    Ceci est mon premier post donc je m'excuse d'avance si je ne suis pas suffisamment précis.. (dites le moi)
    Conscient du titre 'pourris', je suis aussi preneur de toutes idées

    Donc, mon soucis est que je voudrais crée une def qui va être appelé pas d'autres def afin de ne pas répéter toujours la même chose, je m'explique avec un petit bout de code bidon:
    ------------------------
    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
    from tkinter import *
     
    def Win_Option():
        L = Label(tl, text='Gagné')
        L.place(x=10, y=10)
     
    def Win1():
        tl = Toplevel(main)
        Win_Option()
     
    def Win2():
        tl = Toplevel(main)
        Win_Option()
     
    main = Tk()
    Win1()
    ------------------------
    Au lieu de répéter plusieurs fois la même chose, je crée une def. Malheureusement, un message d'erreur apparait ne reconnaissant pas 'tl' qui est crée dans la def 'Win1' et la def 'Win2'.

    Message d'erreur: L = Label(tl, text='Gagné')
    NameError: name 'tl' is not defined
    Je comprends tout à fait le message d'erreur mais je n'ai aucune idée de comment le résoudre :/

    Merci de votre aide ^^

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 302
    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 302
    Points : 36 801
    Points
    36 801
    Par défaut
    Salut,

    Au lieu de répéter plusieurs fois la même chose, je crée une def. Malheureusement, un message d'erreur apparait ne reconnaissant pas 'tl' qui est crée dans la def 'Win1' et la def 'Win2'.
    Win_Option n'a aucune raison de savoir quelle fonction l'a appelé et à quel "tl" ajouter un Label sauf à lui passer cette information là en paramètre.
    De façon générale, si vous découper votre code en fonctions, il faut définir, pour chaque fonction, quelles seront les informations nécessaires à sa bonne exécution. Et ces informations vont se répartir en variables globales ou locales (qui sont aussi les paramètres).
    Et çà serait bien aussi de (re)lire le chapitre du Swinnen sur les fonctions originales et la portée des variables. C'est pas pour rien que ce chapitre là est juste avant les premiers pas de la programmation avec tkinter.

    - W

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci, c'est tout ce qu'il me fallait! Juste une petite question: Peut on mettre une def dans une autre def? Ca se fait ou pas?

    Merci encore
    ++

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 302
    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 302
    Points : 36 801
    Points
    36 801
    Par défaut
    Citation Envoyé par RetardedGenji Voir le message
    Peut on mettre une def dans une autre def? Ca se fait ou pas?
    On fait ce qu'on veut.
    La question est d'abord "quel est le problème à résoudre", puis viennent les solutions qu'on peut explorer et la décision de choisir celle qui paraît moins mauvaise ou qui sera le plus adapté.

    - W

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. insertion d'une fenetre dans une fenetre
    Par DeeVoiD dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/02/2009, 12h56
  3. Problème affichage d'une fenetre dans une fenetre
    Par zuzuu dans le forum Windows
    Réponses: 10
    Dernier message: 03/10/2007, 15h26
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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