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 :

griser un bouton pendant l'ouverture d'une nouvelle fenêtre


Sujet :

wxPython

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut [Résolu] griser un bouton pendant l'ouverture d'une nouvelle fenêtre
    Bonjour,

    J'aimerais pouvoir griser un bouton pendant l'ouverture d'une nouvelle fenêtre.
    Je m'explique :
    j'ai une frame principale dans un fichier.
    Lorsque je clique sur un bouton, je crée une nouvelle frame en l'important d'un autre fichier.
    J'aimerais que ce bouton devienne grisé (du genre btn.disable() ) pendant tout le temps ou cette frame reste ouverte, de façon à ne pouvoir ouvrir qu'une seule fois cette frame !

    Je joins ci-dessous un extrait des 2 fichiers pour bien me faire comprendre :

    fichier "main.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
    #!/usr/bin/env python
    #-*- coding: iso-8859-15 -*-
     
    import wx
     
    class Appli(wx.App):
        def OnInit(self):
            # création de la fenêtre principale
            frame = Principale("Application") 
            frame.Show(True)
            self.SetTopWindow(frame)
            return True
     
    class Principale(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title='main')
            panel =  wx.Panel(self, -1)
            self.gbs = wx.GridBagSizer(hgap=5, vgap=5)
            self.btn1 = wx.Button(panel, -1, "bouton")
            self.Bind(wx.EVT_BUTTON, self.onFonction, self.btn1)
            self.gbs.Add(self.btn1, (0,0))
            panel.SetSizerAndFit(self.gbs)
            self.SetClientSize(panel.GetSize())
     
        def onFonction(self,evt):
            import module1
            self.dlg = module1.algo(self)
            self.dlg.Show(True)
     
    if __name__ == "__main__":
        app = Appli()
        app.MainLoop()
    fichier "module1.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
    import wx
     
    class algo(wx.Frame):
        def __init__(self, parent):
            wx.Frame.__init__(self, parent, -1, title = "algo")
            panel =  wx.Panel(self, -1)
            self.gbs = wx.GridBagSizer(hgap=5, vgap=5)
     
            self.liste1 = ['Choix 1', 'Choix 2']
            self.Choix = wx.RadioBox(panel, -1, "Choix", 
                                          (-1,-1), wx.DefaultSize, self.liste1, 1, 
                                          style = wx.RA_SPECIFY_COLS)
            self.Bind(wx.EVT_RADIOBOX, self.onChoix, self.Choix)
     
            self.btnQuit = wx.Button(panel, -1, "Quitter")
            self.Bind(wx.EVT_BUTTON, self.onQuitter, self.btnQuit)
     
            self.gbs.Add(self.Choix, (0,0))
            self.gbs.Add(self.btnQuit, (0,1))
     
            panel.SetSizerAndFit(self.gbs)
            self.SetClientSize(panel.GetSize())
     
        def onChoix(self, evt):
            pass
     
        def onQuitter(self, evt):
            self.Destroy()
    dans l'attente....

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Salut,

    Ben, pour commencer je te donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.bouton.Hide() # Pour cacher
    self.bouton.Show() # Pour afficher
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.bouton.Enable(True) # Pour activer
    self.bouton.Enable(False) # Pour désactiver
    J'espère t'avoir donné un début de réponse. Si c'est pas le cas désolé.
    Bonne journée.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Bon tant que j'y suis, je continue...

    Tu rajoutes ceci dans ta fonction OnFonction avant self.dlg.Show(True) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.btn1.Enable(False)
    Et puis tu rajoutes dans ta fonction onQuitter avant self.Destroy() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.parent.btn1.Enable(True)
    Sans oublier de rajouter dans le Init de Algo :

    Je suppose que cela fonctionne. En espérant t'avoir aidé.

    A +.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Ça m'a l'air bien tout ça !
    J'essaye ce soir et je te tiens au courant !!!!

    Merci beaucoup

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    J'ai pas pu attendre

    ÇA MARCHE !!!!


    Merci beaucoup !

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Au plaisir. A +.

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Juste un petit bémol...
    Le bouton n'est plus grisé si je quitte "module1.py" par le bouton "quitter", mais pas si je clique sur la croix de la fenêtre....
    Je ferais un autre post si je ne trouve pas de solution "tout seul" !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Bon, je suis une biquette en python mais en espérant de ne pas dire d'anerie, essaye un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def OnCloseWindow(self, evt):
         self.parent.btn1.Enable(True)
         self.Destroy()
    A +.

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    je ne m'etais pas abonné au fil, désolé !
    C'est effectivement la solution que j'avais trouvé

    Merci à tous

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

Discussions similaires

  1. ouverture dans une nouvelle fenêtre ou nouvel onglet [ExtJS 3]
    Par abraxis dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 05/09/2011, 10h48
  2. griser un bouton pendant un temps donné
    Par douezz dans le forum VB.NET
    Réponses: 1
    Dernier message: 22/04/2011, 11h04
  3. Ouverture d'une nouvelle fenêtre PHP
    Par supernono1217 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/06/2009, 09h16
  4. Griser l'arriere plan à l'ouverture d'une image
    Par kl_max dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/03/2009, 13h08
  5. ouverture d'une nouvelle fenêtre
    Par minie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2007, 13h37

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