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

GUI Python Discussion :

bug lors de l'import d'un script


Sujet :

GUI Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 3
    Par défaut bug lors de l'import d'un script
    Bonjour, je suis un grand débutant sur Pyhton.
    je suis en train de développer un petit programe a base de checkbuton.
    il y a deux modules,
    le premier marche comme je le désire: il donne un mapping des boutons cochés.

    le deuxième lance le premier module (quand on sélectionne le bouton Ajout suppression MGW)
    et là le mapping est toujours égale à [0, 0, 0] quelque soit le nombre de bouton cochés.

    si vous avez une idée de ce qu'il se passe...

    il faut mettre des fichiers config1. txt , config2.txt,... dans le répertoire:C:/config_mgw



    premier module enregistré dans un fichier nommé check6.py

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    from tkinter import *
    import os
    fen = Tk()
    #fra1 = Frame(fen)
    class Bouton (Frame):
        #classe de bouton
        #fentre dans laquelle les boutrons vont s'ouvrir'
        def __init__(self, boss=None):
     
            Frame.__init__(self)
     
            print('je commence la class')
     
     
            #Label(root, text = 'Premier champ :')
            #on definit l'ensemble des fichiers de conf dans le repertoir cible
            self.vars = []
            self.chk=[]
            i = 0
            nbvmg = 0
            listmgw = []
            filepath = []
            listmgw = os.listdir('C:/config_mgw')
            print('dans init listgmw=',listmgw)
            nbvmg = len(listmgw)
            filepath.append('C:/config_mgw/' + listmgw[i])
            #i = i + 1
            print ('listmgw dans Bouton=',listmgw)
            #met en place les boutons
            #print('picks=',listmgw)
            for pick in listmgw:
                #print('pick=',pick)
                var = IntVar()
     
                self.chk = Checkbutton(fen, text=pick, variable=var)
                #print('var=',var.get())
                #print('self.chk=',self.chk)
                self.chk.grid()
                self.vars.append(var)
     
     
        def allume(self):
     
            print('j alume les boutons du bas',self)
            Button(fen, text='Valider', command=self.state).grid()
            Button(fen, text='Retour', command=fen.destroy).grid()
            fen.mainloop
     
        def state(self):
            m=IntVar()
            var = IntVar()
            #print('self=',self,type(self))
            #print(("lambda=", lambda var: var.get(var)))
            #print('self.vars=',self.vars)
            #print('map=', map((lambda var: var.get()), self.vars))
            m=map((lambda var: var.get()),self.vars)
            print('vars',self.vars)
            print ('m dans state=',m)
            print('list de m dans state=',list(m))
            return list(m)
     
     
     
    print ('je suis dans check6')
     
    if __name__ == "__main__":
        #root=Tk()
        #listmgw=[]
        r1=Bouton()
        print ('r1=',r1)
        print('type de r1 dans main de check6=',type(r1))
        print('r1 en sortie=',r1)
        #r1.grid()
        r1.allume()
        #result=r1.state
        print ('r1 dans main=',r1)
        #print ('listmgw avant la sortie=',listmgw)
        #print('result=',result)
        r1.mainloop
    ceci est le second module (qui appelle check6 lorsque l'on sélectionne <Ajout suppression MGW>

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    import os
    from tkinter.filedialog import askopenfilename
    from tkinter import *
    from tkinter.filedialog import asksaveasfile, askopenfile
    #import check4
     
    class Application(Frame):
            def __init__(self):
                Frame.__init__(self) # constructeur de la classe parente
                self.master.title("comparaison mgw")
                frSup =Frame(self)
                print( 'init')
    def mgw ():
        result=[]
        #m=IntVar()
        #definir les mgw concernées
        print('je lance check6')
        import check6
        print('fin d import')
        m=check6.Bouton()# instanciation de la classe
        print('m dans mgw=',m)
        print('type de m dans mgw=',type(m))
        result=m.allume()
        print('fin allume',m)
        #result=m.state()
        print('result=',result)
        #m.allstates()
        print ('m=',m)
        print('classe de m=',type(m))
        #o=check6.state()#on recupere la list des mgw
        #print('list state o=',o)
        print('fin de check6, m=',m)
     
        print('mgw')
        m.mainloop
    def filtre ():
        #definir les filtre sur les parametres concernées
        print('filtre')
     
    def reference ():
        #definir la mgw de reference
     
        print('reference')
     
    if __name__ == '__main__':
        m=[]
        root=Tk()
        listmgw=[]
     
        app=Application()
        but=Button(root, text ="Def reference", command =reference)
        but.pack(side =LEFT)
        Button(root, text ="Ajout suppression MGW", command =mgw).pack(side =LEFT)
        print('pff')
        Button(root, text ="Filtre", command =filtre).pack(side =LEFT)
        Button(root, text ="quiter", command =root.destroy).pack(side =LEFT)
        app.mainloop()
    les résultats obtenus sont:
    le premier module check6.py seul quand le premier conif1.txt est sélectionné uniquement: list de m dans state= [1, 0, 0]
    le second modul essai3.py quand le premier conif1.txt est sélectionné uniquement: list de m dans state= [0, 0, 0]

    Si vous avez d'ou vient l'erreur..


    merci d'avance.

    Pug22

    P.S. j'ai ajouté les fichiers py, attention le répertoire n'est pas le même que celui de l'exemple.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [phpMyAdmin] Bug lors de l'import de gros CSV.
    Par boulate dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 26/03/2014, 14h34
  2. Réponses: 5
    Dernier message: 26/02/2013, 16h17
  3. Réponses: 2
    Dernier message: 07/05/2010, 21h57
  4. Bugs lors de l'importation du méta-data
    Par rdmontreal dans le forum W4 Express
    Réponses: 2
    Dernier message: 24/07/2009, 15h59
  5. [PHP 5.2] Bug lors de l'importation vers excel
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2009, 13h47

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