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 :

Un EVT_PAINT qui boucle


Sujet :

wxPython

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Par défaut Un EVT_PAINT qui boucle
    Bonjour !

    Avant toute chose, je précise que je suis tout nouveau en Python ... et en programmation sur PC

    Donc depuis un peu moins de 2 semaines, je parcours docs et forums. Les instructions "de base" du Python ne me posent pas de souci, la POO un peu plus mais ça vient petit à petit ...

    Trouvant Tkinter plutôt ... euh ... moche (ben oui quoi il est moche ), mon choix de GUI s'est porté sur wxPython. Et donc premiers problèmes ...

    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
    import wx
     
    class Fenetre(wx.Frame):
        """ Cadre non redimensionnable """
        def __init__(self):
            wx.Frame.__init__(self, None, -1, "Window Test",
                              style = wx.DEFAULT_FRAME_STYLE
                              & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX))
     
            self.SetClientSizeWH(391, 402)   # adapte la taille du cadre selon l'interieur
     
            self.panel = Plateau(self)      
     
    class Plateau(wx.Panel):
        def __init__(self, parent):
            wx.Panel.__init__(self, parent, -1, pos = (0, 0), size = (391, 402))
     
            plate = wx.EmptyBitmap(391, 402)     # remplissage bitmap pour l'exemple
     
            self.tampon = wx.EmptyBitmap(391, 402)                      
            self.dc = wx.BufferedDC(wx.ClientDC(self), self.tampon)     
            self.dc.DrawBitmap(plate, 0, 0, False)                    
     
            self.Bind(wx.EVT_PAINT, self.onPaint) 
     
        def onPaint(self, event):
            print "evenement PAINT"  # juste pour montrer la boucle
            self.dc = wx.BufferedPaintDC(self, self.tampon) 
     
    #=================================================
    app = wx.App()
    win = Fenetre()
    win.Show()
    app.MainLoop()
    Un truc simple ... une fenêtre qui se comporte normalement sauf quand on la réduit ou la déplace en dehors des limites de l'écran ! En effets dans ces 2 cas là, lorsque je restaure la fenêtre apparemment EVT_PAINT se met en boucle et je pige pas pourquoi !

    Un peu d'aide serait bienvenue

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Par défaut
    Après un peu de sueur j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def onPaint(self, event):
            print "evenement PAINT"  # juste pour montrer la boucle
            self.dc = wx.BufferedPaintDC(self, self.tampon)
            event.Skip() # et ça ne boucle plus
    M'enfin le pourquoi reste encore obscure pour moi ...

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

    J'avais pas tout pigé comment ton evenement se déclencher mais, mais merci pour ta réponse reporté, ca va peut etre m'aidé pour mon problème de boucle aussi dans certain cas.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Par défaut
    Citation Envoyé par Mugen RX Voir le message
    J'avais pas tout pigé comment ton evenement se déclencher
    Et bien en fait le EVT_PAINT se déclenche dès que la fenêtre et son contenu sont affichés ou redessinés (si j'ai bien compris).
    Mais je ne comprends toujours pas pourquoi il continuait à se déclencher une fois qu'il avait fini de l'afficher en totalité.

    Citation Envoyé par Mugen RX Voir le message
    mais merci pour ta réponse reporté, ca va peut etre m'aidé pour mon problème de boucle aussi dans certain cas.
    Si ça peut rendre service, pas de souci

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

Discussions similaires

  1. Problème actionscript qui boucle
    Par baleiney dans le forum Flash
    Réponses: 1
    Dernier message: 26/03/2007, 07h44
  2. requête qui boucle sur une autre requête
    Par super_dz dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/09/2006, 20h02
  3. [FLASH MX2004] Animation qui boucle
    Par pok dans le forum Flash
    Réponses: 2
    Dernier message: 24/10/2005, 01h21
  4. Select qui boucle ou se termine par un Ora-01460
    Par PatriceP dans le forum Oracle
    Réponses: 4
    Dernier message: 29/10/2004, 08h53
  5. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38

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