Added the sample code from wxPython In Action to the samples dir
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
64
wxPython/samples/wxPIA_book/Chapter-03/customEvent.py
Normal file
64
wxPython/samples/wxPIA_book/Chapter-03/customEvent.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import wx
|
||||
|
||||
class TwoButtonEvent(wx.PyCommandEvent):
|
||||
def __init__(self, evtType, id):
|
||||
wx.PyCommandEvent.__init__(self, evtType, id)
|
||||
self.clickCount = 0
|
||||
|
||||
def GetClickCount(self):
|
||||
return self.clickCount
|
||||
|
||||
def SetClickCount(self, count):
|
||||
self.clickCount = count
|
||||
|
||||
myEVT_TWO_BUTTON = wx.NewEventType()
|
||||
EVT_TWO_BUTTON = wx.PyEventBinder(myEVT_TWO_BUTTON, 1)
|
||||
|
||||
class TwoButtonPanel(wx.Panel):
|
||||
def __init__(self, parent, id=-1, leftText="Left",
|
||||
rightText="Right"):
|
||||
wx.Panel.__init__(self, parent, id)
|
||||
self.leftButton = wx.Button(self, label=leftText)
|
||||
self.rightButton = wx.Button(self, label=rightText,
|
||||
pos=(100,0))
|
||||
self.leftClick = False
|
||||
self.rightClick = False
|
||||
self.clickCount = 0
|
||||
self.leftButton.Bind(wx.EVT_LEFT_DOWN, self.OnLeftClick)
|
||||
self.rightButton.Bind(wx.EVT_LEFT_DOWN, self.OnRightClick)
|
||||
|
||||
def OnLeftClick(self, event):
|
||||
self.leftClick = True
|
||||
self.OnClick()
|
||||
event.Skip()
|
||||
|
||||
def OnRightClick(self, event):
|
||||
self.rightClick = True
|
||||
self.OnClick()
|
||||
event.Skip()
|
||||
|
||||
def OnClick(self):
|
||||
self.clickCount += 1
|
||||
if self.leftClick and self.rightClick:
|
||||
self.leftClick = False
|
||||
self.rightClick = False
|
||||
evt = TwoButtonEvent(myEVT_TWO_BUTTON, self.GetId())
|
||||
evt.SetClickCount(self.clickCount)
|
||||
self.GetEventHandler().ProcessEvent(evt)
|
||||
|
||||
|
||||
class CustomEventFrame(wx.Frame):
|
||||
def __init__(self, parent, id):
|
||||
wx.Frame.__init__(self, parent, id, 'Click Count: 0',
|
||||
size=(300, 100))
|
||||
panel = TwoButtonPanel(self)
|
||||
self.Bind(EVT_TWO_BUTTON, self.OnTwoClick, panel)
|
||||
|
||||
def OnTwoClick(self, event):
|
||||
self.SetTitle("Click Count: %s" % event.GetClickCount())
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = wx.PySimpleApp()
|
||||
frame = CustomEventFrame(parent=None, id=-1)
|
||||
frame.Show()
|
||||
app.MainLoop()
|
28
wxPython/samples/wxPIA_book/Chapter-03/double_event_one.py
Normal file
28
wxPython/samples/wxPIA_book/Chapter-03/double_event_one.py
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import wx
|
||||
|
||||
class DoubleEventFrame(wx.Frame):
|
||||
|
||||
def __init__(self, parent, id):
|
||||
wx.Frame.__init__(self, parent, id, 'Frame With Button',
|
||||
size=(300, 100))
|
||||
self.panel = wx.Panel(self, -1)
|
||||
self.button = wx.Button(self.panel, -1, "Click Me", pos=(100, 15))
|
||||
self.Bind(wx.EVT_BUTTON, self.OnButtonClick, self.button)
|
||||
self.button.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown)
|
||||
|
||||
def OnButtonClick(self, event):
|
||||
self.panel.SetBackgroundColour('Green')
|
||||
self.panel.Refresh()
|
||||
|
||||
def OnMouseDown(self, event):
|
||||
self.button.SetLabel("Again!")
|
||||
event.Skip()
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = wx.PySimpleApp()
|
||||
frame = DoubleEventFrame(parent=None, id=-1)
|
||||
frame.Show()
|
||||
app.MainLoop()
|
||||
|
24
wxPython/samples/wxPIA_book/Chapter-03/menu_event.py
Normal file
24
wxPython/samples/wxPIA_book/Chapter-03/menu_event.py
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import wx
|
||||
|
||||
class MenuEventFrame(wx.Frame):
|
||||
|
||||
def __init__(self, parent, id):
|
||||
wx.Frame.__init__(self, parent, id, 'Menus', size=(300, 200))
|
||||
menuBar = wx.MenuBar()
|
||||
menu1 = wx.Menu()
|
||||
menuItem = menu1.Append(-1, "&Exit...")
|
||||
menuBar.Append(menu1, "&File")
|
||||
self.SetMenuBar(menuBar)
|
||||
self.Bind(wx.EVT_MENU, self.OnCloseMe, menuItem)
|
||||
|
||||
def OnCloseMe(self, event):
|
||||
self.Close(True)
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = wx.PySimpleApp()
|
||||
frame = MenuEventFrame(parent=None, id=-1)
|
||||
frame.Show()
|
||||
app.MainLoop()
|
||||
|
34
wxPython/samples/wxPIA_book/Chapter-03/mouse_event.py
Normal file
34
wxPython/samples/wxPIA_book/Chapter-03/mouse_event.py
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import wx
|
||||
|
||||
class MouseEventFrame(wx.Frame):
|
||||
|
||||
def __init__(self, parent, id):
|
||||
wx.Frame.__init__(self, parent, id, 'Frame With Button',
|
||||
size=(300, 100))
|
||||
self.panel = wx.Panel(self)
|
||||
self.button = wx.Button(self.panel, label="Not Over", pos=(100, 15))
|
||||
self.Bind(wx.EVT_BUTTON, self.OnButtonClick, self.button)
|
||||
self.button.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow)
|
||||
self.button.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow)
|
||||
|
||||
def OnButtonClick(self, event):
|
||||
self.panel.SetBackgroundColour('Green')
|
||||
self.panel.Refresh()
|
||||
|
||||
def OnEnterWindow(self, event):
|
||||
self.button.SetLabel("Over Me!")
|
||||
event.Skip()
|
||||
|
||||
def OnLeaveWindow(self, event):
|
||||
self.button.SetLabel("Not Over")
|
||||
event.Skip()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = wx.PySimpleApp()
|
||||
frame = MouseEventFrame(parent=None, id=-1)
|
||||
frame.Show()
|
||||
app.MainLoop()
|
||||
|
Reference in New Issue
Block a user