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

wxPython Discussion :

Pb de lien retour


Sujet :

wxPython

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par défaut Pb de lien retour
    Bonjour,

    Je reviens vers vers après quelques mois de dev sur mon projet qui n'a pas changé mais avec forcement un nouveau problème (Pour rappel, je dev un appli qui communique avec les CISCO pour retrouver du matériels réseaux).

    D'abord un peu de speach avant le code, je démarre sur une fenêtre principale qui me permet de choisir le type de recherche que je veux. A partir de là, un clic, je préaffiche une barre de progression, et demande une IP, un nom réseau etc...
    Le problème est que lorsque je valide l'adresse IP par exemple, le programme ne reviens et ne continue pas...
    J'ai testé directement mes deux bout de code en question et ca marche...J'ai essayé de rajouter des return True mais sans succés...
    auparant, j'avais essayé une autre manière, de faire affiché après la demande et validation d'une adresse, mais j'avais un souci pour remonter la self et pouvoir afficher mes barres de progression sur la self de départ (Je suis peut être compliqué!)

    Bref voici les code :
    Barprog.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
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
     
    ##### Librairies
    import wx                   #Permet d'accéder au wxWidgets (Interface graphique)
    import readstock            #Permet d'ouvrir et de lire un fichier
    import locate_PC            #Permet de localiser un PC
    import decrypt              #Permet d'acceder à la fonction de decryptage
    import openwrite            #Permet d'ouvrir et de sauvegarder dans un fichier
    import readstock            #Permet de lire et stocker dans une variable a partir d'un fichier
    import affichage            #Permet d'afficher le résultat de la recherche
    import autoscrx             #Permet d'avoir accés à la fonction pour resolution écran pour largeur ecran
    import autoscry             #Permet d'avoir accés à la fonction pour resolution écran pour hauteur ecran
    import adress               #Permet de demander l'adresse IP ou le nom réseau
    #####
     
    def go(self2):
        ########## Bar de progression
        self2.count = 0                                 #Test augmentation barre init bar
        self2.pretext1 = wx.StaticText(self2.scrollPane, 1, "Barre de progression", pos = (0,autoscry.Screenauto(290)), style = wx.ALIGN_CENTER)
        ## Bar de prog sous total
        self2.pretext2 = wx.StaticText(self2.scrollPane, 1, "Sous total :", pos = (0,autoscry.Screenauto(275)), style = wx.ALIGN_CENTER)
        self2.gauge = wx.Gauge(self2.scrollPane, -1, pos = (0,autoscry.Screenauto(250)), size = (autoscrx.Screenauto(0),50))
        ##
        ## Bar de prog total
        self2.pretext3 = wx.StaticText(self2.scrollPane, 1, "Total :", pos = (0,autoscry.Screenauto(175)), style = wx.ALIGN_CENTER)
        self2.gauge2 = wx.Gauge(self2.scrollPane, -1, pos = (0,autoscry.Screenauto(150)), size = (autoscrx.Screenauto(0),50))
        ##########
     
        ###### Demande d'adresse IP ou nom Réseau test
        adress.dem()    #Ici je pars sur l'autre prog mais je ne reviens pas sauf dans le cas de test en lancant l'applis directement de lui.
        ######  
     
        ####### Lancement de la recherche
        ####################################### Lecture et stockage des fichiers dans une variable
        adr_eq = readstock.gooff("adrtemp.txt")
        password1 = readstock.gooff("vartemp.txt")
        password2 = readstock.gooff("vartemp2.txt")
        #######################################
        password1 = decrypt.Decrypt(password1)           #Decryptage du mdp
        password2 = decrypt.Decrypt(password2)           #Decryptage du mdp
        ###################################### Lancement localisation d'un PC
        result = locate_PC.locate(adr_eq, password1, password2)
        #######
     
        ###################################### On récupère le résultat
        openwrite.goon("Tempafffinal_locate_PC.txt",result)
        ######################################
    #    self2.count = self2.count +1  #Test
    #    self2.gauge.SetValue(self2.count) #Test
        ################ Affichage résultat
        affichage.Resul()
    Voila le premier en relation avec la demande d'adresse
    adress.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
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
     
    ##### Librairies
    import wx                   #Permet d'accéder au wxWidgets (Interface graphique)
    import openwrite            #Permet d'ouvrir et de sauvegarder dans un fichier
    import autoscrx             #Permet d'avoir accés à la fonction pour resolution écran pour largeur ecran
    import autoscry             #Permet d'avoir accés à la fonction pour resolution écran pour hauteur ecran
    #####
     
    class MaFenetre(wx.Dialog):
        def __init__(self, titre):
            wx.Dialog.__init__(self, None, -1, title = titre, pos = (autoscrx.Screenauto(autoscrx.Screenauto(0)/2+100),autoscry.Screenauto(autoscry.Screenauto(0)/2+50)))
            sizer0 = wx.BoxSizer(wx.VERTICAL)
            sizer1 = wx.BoxSizer(wx.HORIZONTAL)
            panneau = wx.Panel(self, -1)
     
            # Zone de text et bouton définis
            self.text = wx.TextCtrl(panneau, -1)     # Entrer du nom réseau ou de l'adresse IP      
            bouton = wx.Button(panneau, -1, "Valider")
     
            # Text statique
            self.pretext = wx.StaticText(panneau, 1," IP ou nom réseau :", style = wx.ALIGN_CENTER)
     
            # Placer graphique de ces zones
            sizer1.Add(self.pretext, 0, wx.ALIGN_CENTER)
            sizer1.Add(self.text, 0, wx.ALIGN_CENTER)
            sizer1.Add(bouton, 0, wx.ALIGN_CENTER)
            panneau.SetSizer(sizer1)
            sizer0.Add(panneau, 0)
            self.SetSizer(sizer0)
            self.Fit()
            self.Bind(wx.EVT_BUTTON, self.OnClick, bouton)
     
        def OnClick(self, event):
            adr = self.text.GetValue() 
            openwrite.goon("adrtemp.txt",adr)
            self.Destroy()
     
    #Ici j'ai essayé de rajouter un return True.
     
    class MonApp2(wx.App):
       def OnInit(self):   
            fen = MaFenetre("Adresse IP ou nom de l'equipement : ")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    def dem():
        app = MonApp2()
        app.MainLoop()
    Voilà, si vous avez des idées, ou même envie d'en savoir plus sur le projet, demander toujours.
    Je comprend pas ou ca bloque, ou alors mon prog ne montre jamais qu'il est fini

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par défaut
    Pour essayer d'éclaircir, ca vaut pour moi aussi. Quand j'ai les barres de progression préafficher, sur une autre fenêtre qui vient en avant, je rentre une adresse réseau, puis je valide. La fenêtre se ferme bien. Je suis normalement de retour sur l'autre programme, mais ce n'est pas le cas.

    Y t-il un moyen de forcer le retour après le self.Destroy()?
    J'ai essayé avec du return True, un renvoie sur une fonction du fichier de départ, mais ca marche pas.
    Par contre, en enlevant l'affichage de la barre de prog, et en démarrant le programme barprog, cela fonctionne, apres le self destroy, il revient bien!!!!

    Une question, est ce que l'extension de mes fichiers a une importance?
    Ce n'est pas mon fichier de démarrage.

    Merci de me donner une idée ou une piste si vous en avez une. Je coince bêtement la réponse est forcement pas loin.

    Une autre question avez vous rencontré des pb entre Wxpython et PIL. J'ai eu besoin de rajouter une image de fond pour une future fonction et j'utilise la biblioteque PIL, est ce que ca peut y jouer?
    J'ai n'est pas eu de problème avant, juste pour l'inclusion de la barre de progression qui s'appuie sur ma self de départ.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par défaut
    Rebonjour, n'ayant aucune réponse, sans doute parce que je suis pas assez clair et puis parce que il n'y a peut être pas une explication aussi facile, je vous montre le code de départ qui me poser souci. En fait de mon menu quand je renvoie sur mon code adress.py, j'y inclus ma self de maniere à pouvoir afficher ma barre de progression mais surtout lorsque mon adress.py est terminé de pouvoir à terme faire avance ma barre au rythme de la progression de la recherche.

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
     
    ##### Librairies
    import wx                   #Permet d'accéder au wxWidgets (Interface graphique)
    import readstock            #Permet d'ouvrir et de lire un fichier
    import locate_PC            #Permet de localiser un PC
    import decrypt              #Permet d'acceder à la fonction de decryptage
    import openwrite            #Permet d'ouvrir et de sauvegarder dans un fichier
    import readstock            #Permet de lire et stocker dans une variable a partir d'un fichier
    import affichage            #Permet d'afficher le résultat de la recherche
    import autoscr              #Permet d'avoir accés à la fonction pour resolution écran
    import autoscrx             #Permet d'avoir accés à la fonction pour resolution écran pour largeur ecran
    import autoscry             #Permet d'avoir accés à la fonction pour resolution écran pour hauteur ecran
    #####
     
    class MaFenetre(wx.Dialog):
        def __init__(self, titre):
            wx.Dialog.__init__(self, None, -1, title = titre, pos = (autoscrx.Screenauto(autoscrx.Screenauto(0)/2+100),autoscry.Screenauto(autoscry.Screenauto(0)/2+50)))
            sizer0 = wx.BoxSizer(wx.VERTICAL)
            sizer1 = wx.BoxSizer(wx.HORIZONTAL)
            panneau = wx.Panel(self, -1)
     
            # Zone de text et bouton définis
            self.text = wx.TextCtrl(panneau, -1)     # Entrer du nom réseau ou de l'adresse IP      
            bouton = wx.Button(panneau, -1, "Valider")
     
            # Text statique
            self.pretext = wx.StaticText(panneau, 1, " IP ou nom réseau : ", style = wx.ALIGN_CENTER)
     
            # Placer graphique de ces zones
            sizer1.Add(self.pretext, 0, wx.ALIGN_CENTER)
            sizer1.Add(self.text, 0, wx.ALIGN_CENTER)
            sizer1.Add(bouton, 0, wx.ALIGN_CENTER)
            panneau.SetSizer(sizer1)
            sizer0.Add(panneau, 0)
            self.SetSizer(sizer0)
            self.Fit()
            self.Bind(wx.EVT_BUTTON, self.OnClick, bouton)
     
        def OnClick(self, event):
            adr = self.text.GetValue()   
            self.Destroy()
     
            #Ici je voudrais réutilisé ma self2, ma self de la fenêtre de départ mais j'ai pas su faire.Est ce possible? D'ou mon essai avec deux codes.
     
            #######################################  Lecture et stockage des fichiers dans une variable
    #        password1 = readstock.gooff("vartemp.txt")
    #        password2 = readstock.gooff("vartemp2.txt")
            #######################################
    #        password1 = decrypt.Decrypt(password1)           #Decryptage du mdp
    #        password2 = decrypt.Decrypt(password2)           #Decryptage du mdp
            ######################################  Lancement localisation d'un PC
     
    #        result = locate_PC.locate(adr_eq, password1, password2)
            ######################################
    #        openwrite.goon("Tempafffinal_locate_PC.txt",result)
            ######################################
    #        self2.count = self2.count +1  #Test
    #        self2.gauge.SetValue(self2.count) #Test
            ################ Affichage résultat
    #        affichage.Resul()
     
     
    class MonApp2(wx.App):
       def OnInit(self):   
            fen = MaFenetre("Adresse IP ou nom de l'equipement : ")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    def dem(self2):
        ########## Bar de progression
        self2.count = 0   #Test augmentation barre init bar
        self2.pretext1 = wx.StaticText(self2.scrollPane, 1, "Barre de progression", pos = (0,autoscry.Screenauto(290)), style = wx.ALIGN_CENTER)
        ## Bar de prog sous total
        self2.pretext2 = wx.StaticText(self2.scrollPane, 1, "Sous total :", pos = (0,autoscry.Screenauto(275)), style = wx.ALIGN_CENTER)
        self2.gauge = wx.Gauge(self2.scrollPane, -1, pos = (0,autoscry.Screenauto(250)), size = (autoscrx.Screenauto(0),50))
        ##
        ## Bar de prog total
        self2.pretext3 = wx.StaticText(self2.scrollPane, 1, "Total :", pos = (0,autoscry.Screenauto(175)), style = wx.ALIGN_CENTER)
        self2.gauge2 = wx.Gauge(self2.scrollPane, -1, pos = (0,autoscry.Screenauto(150)), size = (autoscrx.Screenauto(0),50))
        ##########
     
        ##### Lancement fenêtre de demande IP
        app = MonApp2()
        app.MainLoop()
        #####
    Voilà, je pense que ca sera plus clair, mon problème est de conserver la self de depart, ici self2 pour pouvoir l'utiliser sur l'evement du click au lancement du script de recherche.

    Est ce possible de transmettre ma self2?

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

Discussions similaires

  1. Comment créer son annuaire gratuit sans lien retour ?
    Par witchgunn dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/01/2009, 21h43
  2. problème méthode validate et un lien retour
    Par newmar dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/06/2008, 10h51
  3. Liste d'annuaires gratuit sans lien retour.
    Par liste-annuaires dans le forum Référencement
    Réponses: 6
    Dernier message: 07/05/2008, 19h23
  4. Lien retour formulaire
    Par VFone dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2007, 17h34

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