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 :

Raffraichir une frame


Sujet :

wxPython

  1. #1
    Membre à l'essai Avatar de Lignite
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Raffraichir une frame
    Bonjour,

    je butte sur un truc qui devrait être simple mais cela fait une paire d'heures que je cherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MyFrame1 ( wx.Frame ):
     
    	def __init__( self, parent ):
    		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"ATCx", pos =(800,200), size = wx.Size( 1500,745 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
     
    		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
    		self.SetBackgroundColour( wx.Colour( 223, 255, 223 ) )
     
    		self.timer = wx.Timer(self)
    		self.Bind(wx.EVT_TIMER, self.Refresh(), self.timer)
    		self.timer.Start(5000)
    Ce code ne fonctionne pas, en fait il fait rien. Comment faire pour rafraîchir ma frame ?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Et comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		self.Bind(wx.EVT_TIMER, self.Refresh, self.timer)
    ?

  3. #3
    Membre à l'essai Avatar de Lignite
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Traceback (most recent call last):
    File "...\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 10673, in Refresh
    return _core_.Window_Refresh(*args, **kwargs)
    TypeError: in method 'Window_Refresh', expected argument 2 of type 'bool'

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Comme tu ne montres pas l'entièreté du traceback on ne peut rien en conclure.

    Ici des exemples de liaisons d'événements sur une Frame:
    http://zetcode.com/wxpython/events/

  5. #5
    Membre à l'essai Avatar de Lignite
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Je n'ai pas compris : l'entièreté du traceback

    Je travaille avec Wind IDE. On fait comment pour avoir plus.

    J'ai éteint l'alarme en créant une fonction Refresh()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	def Refresh( self, event, argument ):
    		self.Strips( argument[0], argument[1], argument[2], argument[3] )
    Et dans la fonction Strips(), j'ai ajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	# afficher les strips
    	def Strips( self, grille, attente, blabla, clairance ):
    		self.timer = wx.Timer(self)
    		self.Bind(wx.EVT_TIMER, lambda evt = wx.EVT_TIMER, arg =(grille, attente, blabla, clairance) : self.Refresh(evt, arg), self.timer)
    		self.timer.Start(5000)
    		for i in range(nbStrip-1):
    			self.aircraft = wx.html.HtmlWindow( attente.GetStaticBox(), i, wx.DefaultPosition, wx.Size( 150,100 ), 0 )
                            ....
    En gros ça marche. Je ne trouve pas ça très beau en terme de codage mais là, c'est juste parce que je suis un débutant en Python.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Bonjour !

    Je propose ceci tout simplement

    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
    class MyFrame1( wx.Frame ):
     
        def __init__( self, parent ):
            wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"ATCx", pos =(800,200), size = wx.Size( 1500,745 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
     
            self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
            self.SetBackgroundColour( wx.Colour( 223, 255, 223 ) )
     
            self.timer = wx.Timer(self)
            self.Bind(wx.EVT_TIMER, self.rafraichir_frame, self.timer)
            self.timer.Start(5000)
     
        def rafraichir_frame(self,evt):
            self.Refresh()
            print "frame refreshed ! ;)"
    Voilà, j'espère que ça répond à la question

  7. #7
    Candidat au Club
    Homme Profil pro
    Hobby
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    wx.Yield() peut résoudre ton problème

Discussions similaires

  1. [AWT][Java 1.1]Raffraichir proprement une frame
    Par Bapt.ice dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/11/2008, 12h10
  2. [flash] ouvrir une page dans une frame différente
    Par viena dans le forum Intégration
    Réponses: 6
    Dernier message: 01/08/2007, 15h54
  3. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 10h35
  4. qu'est ce qu'une frame?
    Par vincetrader dans le forum Développement
    Réponses: 3
    Dernier message: 25/02/2004, 11h24
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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