您的位置:首页 > 编程语言 > Python开发

wxPython的Refresh与事件双重响应

2014-03-23 07:06 573 查看
#!/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.cc = 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):
if self.cc == 1:
self.panel.SetBackgroundColour('Green')
self.cc = 2
else:
self.panel.SetBackgroundColour('RED')
self.cc = 1
self.panel.Refresh() # 这里不管self.Refresh(),只要是parent,或者parent的parent进行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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: