S
SMALLp
Hy!
I have many small panels with text and I want do bind wx.EVT_LEFT_DOWN
when clicked on panel, but i need to bind that in parent class. So I
have instance of that small panel and when i bind it efects only part of
small panel where is no text.
<code>
import wx
class RequestedFilesItems(wx.Panel):
def __init__(self, parent, id):
wx.Panel.__init__(self, parent, -1, style=wx.SUNKEN_BORDER)
sizer = wx.BoxSizer(wx.HORIZONTAL)
upButton = PanelButton(self, -1, "Upload")
upButton.Bind(wx.EVT_LEFT_DOWN, self.upload)
sizer.Add(upButton, 0, wx.LEFT, 15)
self.SetSizer(sizer)
def upload(self, event):
print "Please print this"
class PanelButton(wx.Panel):
def __init__(self, parent, id, buttonName):
wx.Panel.__init__(self, parent, -1, style=wx.SUNKEN_BORDER)
self.SetBackgroundColour("GREY")
sizer = wx.BoxSizer(wx.HORIZONTAL)
self.text = wx.StaticText(self, -1, buttonName)
sizer.Add(self.text, -1, wx.EXPAND | wx.ALL, 1)
self.text.Bind(wx.EVT_LEFT_DOWN, self.OnClick)
self.SetSizer(sizer)
def OnClick(self, event):
print "It only works for text, not for panel what I expected here"
if __name__ == '__main__':
app = wx.PySimpleApp()
frm = wx.Frame(None, wx.ID_ANY, 'Mouse-click test')
panel = RequestedFilesItems(frm, wx.ID_ANY)
frm.Show()
app.MainLoop()
app.MainLoop()
<code>
I have many small panels with text and I want do bind wx.EVT_LEFT_DOWN
when clicked on panel, but i need to bind that in parent class. So I
have instance of that small panel and when i bind it efects only part of
small panel where is no text.
<code>
import wx
class RequestedFilesItems(wx.Panel):
def __init__(self, parent, id):
wx.Panel.__init__(self, parent, -1, style=wx.SUNKEN_BORDER)
sizer = wx.BoxSizer(wx.HORIZONTAL)
upButton = PanelButton(self, -1, "Upload")
upButton.Bind(wx.EVT_LEFT_DOWN, self.upload)
sizer.Add(upButton, 0, wx.LEFT, 15)
self.SetSizer(sizer)
def upload(self, event):
print "Please print this"
class PanelButton(wx.Panel):
def __init__(self, parent, id, buttonName):
wx.Panel.__init__(self, parent, -1, style=wx.SUNKEN_BORDER)
self.SetBackgroundColour("GREY")
sizer = wx.BoxSizer(wx.HORIZONTAL)
self.text = wx.StaticText(self, -1, buttonName)
sizer.Add(self.text, -1, wx.EXPAND | wx.ALL, 1)
self.text.Bind(wx.EVT_LEFT_DOWN, self.OnClick)
self.SetSizer(sizer)
def OnClick(self, event):
print "It only works for text, not for panel what I expected here"
if __name__ == '__main__':
app = wx.PySimpleApp()
frm = wx.Frame(None, wx.ID_ANY, 'Mouse-click test')
panel = RequestedFilesItems(frm, wx.ID_ANY)
frm.Show()
app.MainLoop()
app.MainLoop()
<code>