W
Water Bottle
Hi, I'm new to wxpython and I created a test program. So far, it works, but
there are some problems with it.
For some reason, I get a small box in the top left corner. Not sure why
that's happening.
Also, I can't get my picture to bind to my Play().
Lastly, do you recommend using StaticBitmap as a button? I don't want to use
the wx.Button because I want to create my own custom buttons with its own
borders and such.
I've attached my png.
import wx
class Frame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title, wx.DefaultPosition,
wx.Size(400,400))
self.sizer=wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(Box(self,-1).sizer,1,wx.EXPAND)
self.sizer.Add(Picture(self,-1).sizer,0,wx.EXPAND)
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.Show(1)
class Picture(wx.Panel):
def __init__(self, parent, ID):
wx.Panel.__init__(self, parent, ID)
bitmap =
wx.Bitmap("/home/kevin/programming/python/media/data/arrow_blue.png",
wx.BITMAP_TYPE_PNG)
self.pic = wx.StaticBitmap(parent, ID, bitmap, wx.Point(30,120),
wx.Size(20,20), 0, "Name")
self.pic.Bind(wx.EVT_BUTTON, self.Play)
# Add more pictures later
# Layout
self.sizer = wx.GridSizer(1,10,0,0)
self.sizer.AddMany([(self.pic,1,wx.EXPAND),
])
def Play(self, event):
print "Hello"
class Box(wx.Panel):
def __init__(self, parent, ID):
wx.Panel.__init__(self, parent, ID)
self.control = wx.TextCtrl(parent, 1, style=wx.TE_MULTILINE)
# Layout
self.sizer = wx.BoxSizer(wx.HORIZONTAL)
self.sizer.Add(self.control, 1, wx.EXPAND)
class myApp(wx.App):
def OnInit(self):
frame = Frame(None, -1, "Test")
frame.Show()
self.SetTopWindow(frame)
return 1
app = myApp(0)
app.MainLoop()
Thanks!
there are some problems with it.
For some reason, I get a small box in the top left corner. Not sure why
that's happening.
Also, I can't get my picture to bind to my Play().
Lastly, do you recommend using StaticBitmap as a button? I don't want to use
the wx.Button because I want to create my own custom buttons with its own
borders and such.
I've attached my png.
import wx
class Frame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title, wx.DefaultPosition,
wx.Size(400,400))
self.sizer=wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(Box(self,-1).sizer,1,wx.EXPAND)
self.sizer.Add(Picture(self,-1).sizer,0,wx.EXPAND)
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.Show(1)
class Picture(wx.Panel):
def __init__(self, parent, ID):
wx.Panel.__init__(self, parent, ID)
bitmap =
wx.Bitmap("/home/kevin/programming/python/media/data/arrow_blue.png",
wx.BITMAP_TYPE_PNG)
self.pic = wx.StaticBitmap(parent, ID, bitmap, wx.Point(30,120),
wx.Size(20,20), 0, "Name")
self.pic.Bind(wx.EVT_BUTTON, self.Play)
# Add more pictures later
# Layout
self.sizer = wx.GridSizer(1,10,0,0)
self.sizer.AddMany([(self.pic,1,wx.EXPAND),
])
def Play(self, event):
print "Hello"
class Box(wx.Panel):
def __init__(self, parent, ID):
wx.Panel.__init__(self, parent, ID)
self.control = wx.TextCtrl(parent, 1, style=wx.TE_MULTILINE)
# Layout
self.sizer = wx.BoxSizer(wx.HORIZONTAL)
self.sizer.Add(self.control, 1, wx.EXPAND)
class myApp(wx.App):
def OnInit(self):
frame = Frame(None, -1, "Test")
frame.Show()
self.SetTopWindow(frame)
return 1
app = myApp(0)
app.MainLoop()
Thanks!