wxpython学习2

wxpython应用采用事件驱动的方式来实现用户界面和wxpython系统的交互。

在wxpython应用程序中,一个事件是wx.Event类或者其子类的一个实例。通过一个时间的子类是无法区分更细的事件。一种做法是继续从时间子类中集成而得到更小的事件子类。但是wxpython采用了另外一种做法,即事件类型。通过事件类型可以识别在同一个事件类下的不同事件类型。


事件的绑定和处理:

通过使用wx.EvtHandler类中的Bind方法可以将绑定事件的类型,事件对象和事件处理函数关联起来。下面为此方法的函数定义:

Bind(event, handler ,source = None , id= wx.ID_ANY,id=wx.ID_ANY)

一般使用的是前三个参数。第一个参数为事件的类型,第二个参数为绑定此事件的处理函数,第三个参数默认为None,表示当前的Frame.


代码:

#encoding = utf-8
import wx
import time

class MyFrame(wx.Frame):

def __init__(self, parent):
wx.Frame.__init__(self, parent, -1,'Hello world',size=(300,300))

panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(sizer)

txt = wx.StaticText(panel, -1 ,'Hello world!')
sizer.Add(txt,0,wx.TOP|wx.LEFT,100)

button = wx.Button(panel,-1,'Quit')
sizer.Add(button,0,wx.TOP|wx.LEFT,100)
self.Bind(wx.EVT_BUTTON,self.OnClick,button)

self.Centre()

def OnClick(self,event):
self.Close(True)

class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None)
self.frame.Show(True)
return True

def OnExit(self):

time.sleep(2)


if __name__ == '__main__':
app = MyApp()
app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值