wxpython : faire une appli avec une image et des boutons dessus

wxpython : faire une appli avec une image et des boutons dessus - Python - Programmation

Marsh Posté le 16-08-2005 à 15:35:10    

Bonjour,
J'essaye de faire une appli avec une image dans le fond et des boutons dessus (qui lanceront d'autres fenetres)
 
voici mon code :  
 

Code :
  1. #import wx
  2. from wxPython.wx import *
  3. class MyPanel(wxPanel) :
  4. def __init__(self):
  5.  print "on init panel"
  6.  png = wxBitmap('Menuo.png')
  7.  wxStaticBitmap(self, -1, png, (0, 0), (png.GetWidth(), png.GetHeight()))
  8.  b = wxButton(self, -1, "Create and Show a Frame", (50,50))
  9.  self.Bind(wx.EVT_BUTTON, self.OnButton, b)
  10. class MyFrame(wxFrame) :
  11. def __init__(self, parent, ID, title, pos=wxDefaultPosition,size=wxDefaultSize, style=wxDEFAULT_FRAME_STYLE):
  12.  self.log = log
  13.         panel = MyPanel()
  14. def OnCloseMe(self, event):
  15.  self.Close(True)
  16. def OnCloseWindow(self, event):
  17.  self.Destroy()
  18. class MyApp(wxApp):
  19. def OnInit(self):
  20.  print "on init app"
  21.  win = MyFrame(self, -1, "This is a wx.Frame", size=(631,444),style = wxDEFAULT_FRAME_STYLE)
  22.  win.Show(True)
  23.  return true
  24. def OnCloseMe(self, event):
  25.  self.Close(True)
  26. app = MyApp(0)
  27. app.MainLoop()


 
et l'erreur :  
 


python ikurso.py
on init panel
Traceback (most recent call last):
  File "ikurso.py", line 15, in ?
    class MyFrame(wxFrame) :
  File "ikurso.py", line 19, in MyFrame
    panel = MyPanel()
  File "ikurso.py", line 9, in __init__
    png = wxBitmap('Menuo.png')
  File "C:\Python24\Lib\site-packages\wx-2.6-msw-unicode\wx\_gdi.py", line 550,
in __init__
    newobj = _gdi_.new_Bitmap(*args, **kwargs)
wx._core.PyNoAppError: The wx.App object must be created first!


 
Je ne comprends pas trop comment faire. J'ai regardé les exemples de la doc, sans résultat...
 
Autre question :  
- quelle différence y'a t'il entre une fonction OnInit et __init__ ? Laquelle s'execute en premier ?
 
Merci,
 
Axel

Reply

Marsh Posté le 16-08-2005 à 15:35:10   

Reply

Sujets relatifs:

Leave a Replay

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