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 :

Scintillement avec wx.StaticBitmap


Sujet :

wxPython

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut Scintillement avec wx.StaticBitmap
    Bonjour,

    Mon but est d'afficher une animation dont je ne connais les frames qu'en temps réel dans une fenêtre (il ne suffit donc pas d'afficher une gif animée). J'ai utilisé wx.StaticBitmap et je remplace la bitmap à l'intérieur toutes les 50ms avec la méthode SetBitmap.
    Ca marche bien, mais le problème est qu'entre deux changements d'images, on aperçoit le fond gris de la fenêtre. On observe donc un scintillement de l'animation dont j'aimerais bien me débarrasser. (En Tkinter, je ne l'observe pas en créant un canevas).

    Voilà une partie la partie principale du code:

    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
    class Loupe(wx.Frame):
     
        def __init__(self):
            wx.Frame.__init__(self, None, -1, '', pos = (-1, -1), style = (wx.SIMPLE_BORDER|wx.FRAME_NO_TASKBAR|wx.STAY_ON_TOP), size=(300, 200))
     
            #DESSIN DE L'IMAGE
    	self.bmp = wx.StaticBitmap(parent = self, bitmap=wx.EmptyImage(WIDTH, HEIGHT).ConvertToBitmap())
     
            self.Show()
            thread.start_new_thread( self.refresh, () )
     
     
        def refresh(self):
            while True:
    	    self.bmp.SetBitmap( image() )			#MISE A JOUR DE L'IMAGE (la fonction image renvoie une image)
    	    time.sleep(0.04)

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Si tu ne veux pas de scintillement il faut utiliser soit le doublebuffered (jamais réussi à le faire marcher) soit passer par les classes wx.BufferedDC, wx.BufferedPaintDC. Il doit y avoir des exemples dans la démo.
    Sinon, voici un exemple utilisant ce système:
    http://guigui.developpez.com/sources...i/?page=page_6

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Bonjour,

    J'utilise pour cela le widget BufferedCanvas. Il très simple à mettre en place.

    Tu le trouveras avec son exemple d'utilisation là :

    http://wiki.wxpython.org/BufferedCanvas

    Avec ça, plus de scintillement...

    A +

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut
    Merci pour vos réponses, ça marche !

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

Discussions similaires

  1. Supprimer scintillement avec DoubleBuffere
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 04/01/2011, 14h24
  2. Réponses: 2
    Dernier message: 31/08/2007, 01h01
  3. Eviter le scintillement lors de manip css avec javascript...
    Par MasterOfChakhaL dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/04/2006, 20h11
  4. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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