常用事件
EVT_SIZE 由于用户干预或由程序实现,当一个窗口大小发生改变时发送给窗口。
EVT_MOVE 由于用户干预或由程序实现,当一个窗口被移动时发送给窗口。
EVT_CLOSE 当一个框架被要求关闭时发送给框架。除非关闭是强制性的,否则可以调用event.Veto(true)来取消关闭。
EVT_PAINT 无论何时当窗口的一部分需要重绘时发送给窗口。
EVT_CHAR 当窗口拥有输入焦点时,每产生非修改性(Shift键等等)按键时发送。
EVT_IDLE 这个事件会当系统没有处理其它事件时定期的发送。
EVT_LEFT_DOWN 鼠标左键按下。
EVT_LEFT_UP 鼠标左键抬起。
EVT_LEFT_DCLICK 鼠标左键双击。
EVT_MOTION 鼠标在移动。
EVT_SCROLL 滚动条被操作。这个事件其实是一组事件的集合,如果需要可以被单独捕捉。
EVT_BUTTON 按钮被点击。
EVT_MENU 菜单被选中。
Veto()否决事件
<python>
import wx
class Example(wx.Frame):
def __init__(self,parent,title):
super(Example,self).__init__(parent,title=title,size=(400,300))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
def OnCloseWindow(self,e):
dial = wx.MessageDialog(None,"Are you Sure to Quit?","Question",
wx.YES_NO|wx.NO_DEFAULT|wx.ICON_QUESTION)
ret = dial.ShowModal()
if ret == wx.ID_YES:
self.Destroy()
else:
e.Veto()
if __name__ == '__main__':
app = wx.App()
Example(None,title="VetoMethod")
app.MainLoop()
</python>
self.Bind 与 self.button.Bind
ref:https://wiki.wxpython.org/self.Bind%20vs.%20self.button.Bind