wxPython => que se passe t-il quand on ferme ?

wxPython => que se passe t-il quand on ferme ? - Python - Programmation

Marsh Posté le 03-04-2005 à 14:01:03    

salut all
 
désolé si ma question est un peu con. je débute en python.
j'ai lu la doc mais je n'arrive pas à y trouver l'info que je cherche : que se passe t-il quand on ferme une fenetre ? quelle fonction est appellée ? est-il possible de la surcharger ?
merci
 
ps, si vous voulez voir un peu de code, j'en met ici :

Code :
  1. class fenetrePri(wx.Frame):
  2.     def __init__(self, parent, id, titre, son, deplacement):
  3.         wx.Frame.__init__(self, parent, -1, titre, size = (1000, 100),
  4.                           style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
  5.         self.son = son
  6.         self.deplacement = deplacement
  7.    
  8.         boite = wx.BoxSizer(wx.HORIZONTAL)
  9.         btnReculer= wx.Button(self, -1, "<<" )
  10.         btnReculer.Bind(wx.EVT_BUTTON, self.surBtnReculer, btnReculer)
  11.         boite.Add(btnReculer, 0, wx.ALL, 2)   
  12.              
  13.         btnLecture = wx.Button(self, -1, "Lecture" )
  14.         btnLecture.Bind(wx.EVT_BUTTON, self.surBtnLecture, btnLecture)
  15.         boite.Add(btnLecture, 0, wx.ALL, 2)
  16.    
  17.         btnPause = wx.Button(self, -1, "Pause" )
  18.         btnPause.Bind(wx.EVT_BUTTON, self.surBtnPause, btnPause)
  19.         boite.Add(btnPause, 0, wx.ALL, 2)
  20.         btnStop = wx.Button(self, -1, "Stop" )
  21.         btnStop.Bind(wx.EVT_BUTTON, self.surBtnStop, btnStop)
  22.         boite.Add(btnStop, 0, wx.ALL, 2)
  23.    
  24.         btnAvancer = wx.Button(self, -1, ">>" )
  25.         btnAvancer.Bind(wx.EVT_BUTTON, self.surBtnAvancer, btnAvancer)
  26.         boite.Add(btnAvancer, 0, wx.ALL, 2)
  27.         btnMonterVol= wx.Button(self, -1, "Volume +" )
  28.         btnMonterVol.Bind(wx.EVT_BUTTON, self.surBtnMonterVol, btnMonterVol)
  29.         boite.Add(btnMonterVol, 0, wx.ALL, 2)
  30.    
  31.         btnBaisserVol= wx.Button(self, -1, "Volume -" )
  32.         btnBaisserVol.Bind(wx.EVT_BUTTON, self.surBtnBaisserVol, btnBaisserVol)
  33.         boite.Add(btnBaisserVol, 0, wx.ALL, 2)
  34.         btnTest= wx.Button(self, -1, "Test" )
  35.         btnTest.Bind(wx.EVT_BUTTON, self.surBtnTest, btnTest)
  36.         boite.Add(btnTest, 0, wx.ALL, 2)
  37.            
  38.         self.SetSizer(boite)
  39.    
  40.         barreDefil = wx.Slider(self, -1, 1, 1, 100, (-1, -1), (300, -1), wx.SL_HORIZONTAL | wx.SL_AUTOTICKS)
  41.         boite.Add(barreDefil, 0, wx.ALL, 2)
  42.         barreDefil.Bind(wx.EVT_SCROLL_THUMBTRACK, self.bougeBarreDefil, barreDefil)
  43.    
  44.         self.Show(1)
  45.    
  46.     def surBtnReculer(self, event):
  47.         self.son.reculer(self.deplacement)
  48.     def surBtnLecture(self, event):
  49.         self.son.lecture()
  50.    
  51.     def surBtnPause(self, event):
  52.         self.son.pause()
  53.     def surBtnStop(self, event):
  54.         self.son.stop()
  55.        
  56.     def surBtnAvancer(self, event):
  57.         self.son.avancer(self.deplacement)
  58.     def surBtnMonterVol(self, event):
  59.         self.son.monterVol()
  60.    
  61.     def surBtnBaisserVol(self, event):
  62.         self.son.baisserVol()
  63.     def surBtnTest(self, event):
  64.         pass
  65.    
  66.     def bougeBarreDefil(self, event):
  67.         self.son.deplace(event.GetPosition())
  68. class App(wx.App):
  69.     def OnInit(self):
  70.         self.son = Son('test.mp3')
  71.         self.t = Thread(target = monThread)
  72.         self.t.start()
  73.         frame = fenetrePri(None, -1, "Super Lecteur 3000", self.son, 5)
  74.         self.SetTopWindow(frame)
  75.         return 1
  76. app = App(0)
  77. app.MainLoop()


 
comme vous le voyez, c'est une interface graphique pour un lecteur mp3. elle lance un thread (dans OnInit) et je voudrais pouvoir surcharger la fonction de sortie pour pouvoir killer ce thread en quittant (sinon, la fenetre se ferme mais l'application continue).
 
 
edit : si vous voyez des des incohérences, des trucs qui ne vont pas ou qui ne sont pas très propres, n'hésitez pas à me le dire. j'ai lu du code en python mais pas encore assez pour réussir à déterminer ce qu'est un joli code  :p


Message édité par psychotek le 03-04-2005 à 14:03:53
Reply

Marsh Posté le 03-04-2005 à 14:01:03   

Reply

Marsh Posté le 03-04-2005 à 15:26:23    

[:am7] bon ok chus vraiment à l'ouest, c'était OnExit tout simplement.
 
au fait vous savez comment faire faire quelque chose à MainLoop ? pour qu'elle exécute une action à chaque tour de boucle par exemple... je pourrais la surcharger mais comme je ne sais pas quel est son code d'origine je ne sais pas trop comment m'y prendre.


Message édité par psychotek le 03-04-2005 à 15:53:52
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed