axel584 | 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 :
- #import wx
- from wxPython.wx import *
- class MyPanel(wxPanel) :
- def __init__(self):
- print "on init panel"
- png = wxBitmap('Menuo.png')
- wxStaticBitmap(self, -1, png, (0, 0), (png.GetWidth(), png.GetHeight()))
- b = wxButton(self, -1, "Create and Show a Frame", (50,50))
- self.Bind(wx.EVT_BUTTON, self.OnButton, b)
- class MyFrame(wxFrame) :
- def __init__(self, parent, ID, title, pos=wxDefaultPosition,size=wxDefaultSize, style=wxDEFAULT_FRAME_STYLE):
- self.log = log
- panel = MyPanel()
- def OnCloseMe(self, event):
- self.Close(True)
- def OnCloseWindow(self, event):
- self.Destroy()
- class MyApp(wxApp):
- def OnInit(self):
- print "on init app"
- win = MyFrame(self, -1, "This is a wx.Frame", size=(631,444),style = wxDEFAULT_FRAME_STYLE)
- win.Show(True)
- return true
- def OnCloseMe(self, event):
- self.Close(True)
- app = MyApp(0)
- 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 |