wxGlade

P

Pilu

hi,given that I'm a newbie in python,
I have a little problem with wx...
Maybe it's a stupid thing,but if u want help me!
I used wxglade to generate a simple window with a button!
wxglade generates the code,and now I try to insert events,but I have an
error,I don't understand!
The code is this:

from wxPython.wx import *

class MyFrame(wxFrame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wxDEFAULT_FRAME_STYLE
wxFrame.__init__(self, *args, **kwds)
self.button_1 = wxButton(self, -1, "button_1")

self.__set_properties()
self.__do_layout()
# end wxGlade
EVT_BUTTON(self, 1003, self.event)

def __set_properties(self):
# begin wxGlade: MyFrame.__set_properties
self.SetTitle("frame_1")
# end wxGlade

def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wxBoxSizer(wxVERTICAL)
sizer_1.Add(self.button_1, 0, 0, 0)
self.SetAutoLayout(1)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
sizer_1.SetSizeHints(self)
self.Layout()
# end wxGlade
def event(self):
print "ciao"

# end of class MyFrame


class MyApp(wxApp):
def OnInit(self):
frame = MyFrame(NULL, -1, "Hello from wxPython")
frame.Show(true)
self.SetTopWindow(frame)
return true

app = MyApp(0)
app.MainLoop()





Thanks
-pilu-
 
M

Markus Faltin

I'm a newbie regarding wxPython, nevertheless I worked this out:
class MyFrame(wxFrame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wxDEFAULT_FRAME_STYLE
wxFrame.__init__(self, *args, **kwds)
self.button_1 = wxButton(self, -1, "button_1")
self.__set_properties()
self.__do_layout()
# end wxGlade
EVT_BUTTON(self, 1003, self.event)

You have to set the identifier of the button:
self.button_1 = wxButton(self, 1003, "button_1")
def event(self):
print "ciao"

The triggered method also needs the event as a parameter:

def event(self, event):
print "ciao"


Markus
 
B

Brian Kelley

Markus said:
I'm a newbie regarding wxPython, nevertheless I worked this out:

class MyFrame(wxFrame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wxDEFAULT_FRAME_STYLE
wxFrame.__init__(self, *args, **kwds)
self.button_1 = wxButton(self, -1, "button_1")
self.__set_properties()
self.__do_layout()
# end wxGlade
EVT_BUTTON(self, 1003, self.event)


You have to set the identifier of the button:
self.button_1 = wxButton(self, 1003, "button_1")

Not necessarily, you can keep the -1 designation and then
EVT_BUTTON(self, self.button_1.GetId(), self.event)

I prefer this method since it is less book keeping for me.

Brian Kelley
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,586
Members
45,085
Latest member
cryptooseoagencies

Latest Threads

Top