wxPython窗体的最小化、退出以及移动代码剪辑

def __LayoutTop(self):
    topSizer = wx.BoxSizer(wx.HORIZONTAL)
    BtnMinSize = lib.ButtonTool(self.topPanel, -1, wx.Image("img/main/icon_down.jpg",wx.BITMAP_TYPE_JPEG).ConvertToBitmap(), pos=(self.client_width-100,0), size=(50,50))
    BtnExit = lib.ButtonTool(self.topPanel, -1, wx.Image("img/main/icon_exit.jpg",wx.BITMAP_TYPE_JPEG).ConvertToBitmap(), pos=(self.client_width-50,0), size=(50,50))
    self.Bind(wx.EVT_BUTTON, self.OnIconfiy, BtnMinSize)
    self.Bind(wx.EVT_BUTTON, self.OnExit, BtnExit)
    self.topPanel.Bind(wx.EVT_LEFT_DOWN, self.OnPanelLeftDown)
    self.topPanel.Bind(wx.EVT_MOTION, self.OnPanelMotion)
    self.topPanel.Bind(wx.EVT_LEFT_UP, self.OnPanelLeftUp)
    self.topPanel.SetSizer(topSizer)
    topSizer.SetSizeHints(self.topPanel)
    topSizer.Fit(self.topPanel)

def OnIconfiy(self,event):
    self.Hide()

def OnExit(self,event):
    self.cpu["taskBarIcon"].Destroy()
    self.Destroy()
    self.selfDestructive = threading.Thread(target=lib.selfDestructive, args=())
    self.selfDestructive.start()

def OnPanelLeftDown(self, event):
    self.Refresh()
    self.ldPos = event.GetEventObject().ClientToScreen(event.GetPosition())
    self.wPos = self.ClientToScreen((0,0))
    event.GetEventObject().CaptureMouse()

def OnPanelMotion(self, event):
    if event.Dragging() and event.LeftIsDown():
        dPos = event.GetEventObject().ClientToScreen(event.GetPosition())
        nPos = (self.wPos.x + (dPos.x - self.ldPos.x),
                self.wPos.y + (dPos.y - self.ldPos.y))
        self.Move(nPos)

def OnPanelLeftUp(self, event):
    if event.GetEventObject().HasCapture():
        event.GetEventObject().ReleaseMouse()

你可能感兴趣的:(wxPython窗体的最小化、退出以及移动代码剪辑)