customevent.py

来自「wxPython的基本示例程序」· Python 代码 · 共 65 行

PY
65
字号
import wxclass 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 = countmyEVT_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()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?