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 :

Soucis Button Tkinter [Python 3.X]


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Par défaut Soucis Button Tkinter
    Bonjour, (Je suis nouveau donc si mon post n'est pas dans la bonne section je m'en excuse ^^)

    Voilà il y as quelques semaines j'ai commencer un programme en Python pour trier automatiquement les fichiers que j'envois dans ma clé usb.

    (Pour l'exemple le résultat final devrait donner quelque chose du genre : Dans ma clé usb il n'y as qu'un seul dossier à la racine et dans ce dossier il y à plusieurs sous dossier qui serviront à accueillir les fichier triés par extensions, mais imaginons maintenant que je transfère un ".png" bah la pour le coup il n'y auras pas qu'un seul dossier disponible parce que je veux que mes ".png" soit triés par exemple certains dans le dossier "Vacances" et d'autres dans le dossier "Famille"
    alors pour exécuter cette tache comme le logiciel ne peut pas différencié les photos de vacances et les autres (sa serait trop beau xP) j'ai décidé de faire en sorte qu'a chaque fois qu'il trouve un ".png" un popup apparaisse pour me demander dans quel dossier l'envoyer et au résultat de ce popup un autre popup apparaît pour me demander si oui ou non les autres png présent à la racine vont dans le même dossier que le précédent.)

    Le soucis que j'ai ici c'est que mon Button_Oui qui me permet de dire si oui ou non ils vont dans le même dossier ne fonctionne pas. Quand je clique sur Oui rien ne se passe et quand je clique sur Non juste après avoir cliqué sur Oui sa me dit "Button_Oui is not defined" alors sur un autre forum on m'as dit que Button.config(command=macomand) fonctionnait mais je commence à avoir un gros doute. évidement j'ai essayer de mettre la Command dans le bouton de base pour voir si cela fonctionnait mais non plus rien à y faire "Button_Oui is not defined" (j'avais enlever la ligne Button_Oui.config pour ce test puisque j'avais rentrer la commande directement sur le bouton). J'ai d'abord pensé qu'il s'agissait d'une erreur de positionnement de ma Def alors je l'ai d'abord mise avant la "def Popup()" puis juste en dessous de la "def Popup()" et maintenant comme vous le voyez elle est dans la "def APNG()" mais j'ai toujours le même message d'erreur "Button_Oui is not defined" quoi que je fasse. Quelqu'un aurait une idée ?
    (Le code actuel n'est pas très propre je sais veuillez me pardonner si il vous parait stupide comme code c'est du provisoire d'abord je l'écrit en brut et après j'optimise là ou je peux xP)

    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
    ####IMPORTATION BIBLIOTHEQUE#######
    import os
    import shutil
    from tkinter import*
    import Chemins
    ###################################
    def Popup():
        def APNGBIS():
            shutil.move(os.path.join('./', Media2), Chemins.APNG2)
        def APNG():
            def YES():
                PoPupALL = Tk()
                PoPupALL_Label = Label(PoPupALL, text="Tout les autres fichiers présents du même format sont ils pour le même dossier ?")
                Button_Oui = Button(PoPupALL, text="OUI")
                Button_Non = Button(PoPupALL, text="NON", command=PoPupALL.destroy)
                Button_Oui.pack()
                Button_Non.pack()
                PoPupALL_Label.pack()
                PoPupALL.mainloop()
            shutil.move(os.path.join('./', Media), Chemins.APNG2)
            PoPup.destroy()
            for Media2 in os.listdir('./'):
                if Media2.endswith('.PNG'):
                    YES()
                    Button_Oui.config(command=APNGBIS)
        PoPup = Tk()
        PoPup_Label = Label(PoPup, text="À quelle dossier appartient ce fichier ?")
        if Media.endswith('.PNG'):
            Bouton_PNG = Button(PoPup,text="PNG",command=APNG)
            Bouton_PNG.pack()
        PoPup_Label.pack()
        PoPup.mainloop()
     
    while True:
        for Media in os.listdir('./'):
            if Media.endswith('.PNG'):
                Popup()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Salut,

    Citation Envoyé par Nelion45 Voir le message
    Quand je clique sur Oui rien ne se passe et quand je clique sur Non juste après avoir cliqué sur Oui sa me dit "Button_Oui is not defined"
    Toutes les variables créées dans une fonction disparaissent à la sortie/fin de la fonction. Ça s'appelle la portée des variables et c'est bien expliqué dans tous les tutos. Le Swinnen qu'on aime bien ici raconte çà dans le chapitre sur les fonctions.

    De plus, programmer avec tkinter n'est pas intuitif et si vous ne prenez pas le temps de regarder comment faire en étudiant un tuto. vous allez avoir de gros soucis.

    Et si la question était comment créer une boîte de dialogue avec tkinter (puisque c'est ce que fait votre code), là c'est de la programmation un peu plus avancée et çà se trouve, par exemple, sur effbot

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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Par défaut
    Oui nan mais la portabilité des variables je connais un minimum, je veux dire j'ai déjà coder un programme de conversion d'une grandeur réel (c'est à dire un nombre du genre -25,435) vers l'hexadecimal et pour se faire en Tkinter j'ai bien du faire des def pour chaques fonction et les attribuer à Tkinter pour que tout marche (il y avait 6 sous fonction il me semble). Tkinter j'ai suivis des cours et lu des tutos de plus j'ai lu la page que vous m'avez envoyé il me semble alors je conçois que mon soucis est sûrement du à la portabilité de mes variables mais là vu que sa fait depuis hier fin d'après-midi que je suis sur le même soucis j'aimerais bien savoir comment m'en dépatouiller quitte même à devoir refaire mon code qui n'est peut être pas ultra optimiser pour ce que je souhaite faire. Mais au moin avoir une piste.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par Nelion45 Voir le message
    Oui nan mais la portabilité des variables je connais un minimum
    Ah bon? Moi je connais la portée d'une variable mais la portabilité, c'est bien la première fois que j'en entend parler.

    Citation Envoyé par Nelion45 Voir le message
    mais là vu que sa fait depuis hier fin d'après-midi que je suis sur le même soucis j'aimerais bien savoir comment m'en dépatouiller quitte même à devoir refaire mon code qui n'est peut être pas ultra optimiser pour ce que je souhaite faire. Mais au moin avoir une piste
    La piste est "portée des variables" (avec chapitre correspondant d'un tuto. à lire)... Et si vous êtes coincé la dessus, c'est juste parce que vous maîtrisez encore assez mal de telles notions de base...

    note: Et selon les règles de ces forums, vous êtes supposé avoir ouvert un tuto. et avoir appris ces bases avant de poster.

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

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 15
    Par défaut
    Portabilité c'est la notion qu'utilise mon prof pour dire portée c'est la même chose.

    Oui je suis d'accord que c'est sûrement la "portée" mais sa je le savais déjà plus ou moins mais ce que j'aimerais savoir c'est où je me plante parce que comme dit dans mon post j'ai déjà chercher à modifier la position des mes fonctions "def" donc je vois vraiment pas d'où cela peut venir.

    Note : je le sais sa et comme dit plus haut je suis des cours de programmations et j'ai déjà programmer un logiciel Python avec Tkinter complet donc le tuto je pense pas que sa soit utile surtout que je continue de suivre des cours sur Python et Tkinter en parallèle.

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

Discussions similaires

  1. [Python 3.X] Petit soucis avec Tkinter
    Par supercyprien dans le forum Général Python
    Réponses: 3
    Dernier message: 27/01/2018, 10h45
  2. [Python 3.X] commande avec argument pour action button tkinter
    Par many77 dans le forum Général Python
    Réponses: 3
    Dernier message: 02/12/2016, 07h38
  3. soucis python tkinter
    Par crazyan dans le forum Général Python
    Réponses: 1
    Dernier message: 19/06/2013, 08h25
  4. Soucis avec Tkinter
    Par Morsounet dans le forum Tkinter
    Réponses: 13
    Dernier message: 01/06/2011, 21h24
  5. supression BUTTON TKinter
    Par vega95 dans le forum Tkinter
    Réponses: 9
    Dernier message: 07/11/2008, 20h30

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