4.事件处理

对事件的反应在wxPython是称为事件处理。一个事件是当“东西”发生在您的应用程序(单击按钮、文本输入、鼠标移动等)。大部分的GUI编程由响应事件。你在绑定对象到事件使用bind()方法:
class MainWindow(wx.Frame):
   def __init__(self, parent, title):
           wx.Frame.__init__(self,parent, title=title, size=(200,100))
           ...
           menuItem = filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program")
           self.Bind(wx.EVT_MENU, self.OnAbout, menuItem)


This means that, from now on, when the user selects the "About" menu item, the method self.OnAbout will be executed. wx.EVT_MENU is the "select menu item" event. wxWidgets understands many other events (see the full list). The self.OnAbout method has the general declaration:

这是说,从现在开始,当用户选择了"About"按钮,self.OnAbout方法被执行。wx.EVT_MENU代表“选择按钮”事件。wxWidgets明白很多事件处理。

这个方法用下边的形式表现:

def OnAbout(self, event):
         ...
这里的event是wx.Event的实例。比如一个按钮单击事件-wx.EVT-BUTTON就是一个wx.Event的实例。
def OnButtonClick(self, event):
       if (some_condition):
           do_something()
       else:
           event.Skip()
   
   def OnEvent(self, event):

 

当一个button-click事件发生时,该方法将被调用OnButtonClick。如果some_condition是真的,我们do_something()否则我们让事件处理的更普遍的事件处理程序。现在让我们看看我们的应用程序:
'''
Created on 2012-6-29

@author: Administrator
'''
import wx

class MyFrame(wx.Frame):
    def __init__(self,parent,title):
        wx.Frame.__init__(self,parent,title=title,size=(500,250))
        
        self.contrl = wx.TextCtrl(self,style=wx.TE_MULTILINE)
        
        self.CreateStatusBar()
        
        filemenu = wx.Menu()
        menuAbout=filemenu.Append(wx.ID_ABOUT,"&About","about this program")
        
        filemenu.AppendSeparator()  
        menuExit=filemenu.Append(wx.ID_EXIT,"E&xit","Close program")  
          
        menuBar = wx.MenuBar()  
        menuBar.Append(filemenu,"&File") 
        
        self.Bind(wx.EVT_MENU, self.OnAbout,menuAbout)
        self.Bind(wx.EVT_MENU, self.OnExit,menuExit)
        
         
        self.SetMenuBar(menuBar)  
        
        
        self.Show(True)
    def OnAbout(self,e):
        dlg = wx.MessageDialog(self,"A small editor","about simple editor",wx.OK)
        dlg.ShowModal()
        dlg.Destroy()
    def OnExit(self,e):
        self.Close(True)

app = wx.App(False)
frame = MyFrame(None,"Small Editor")
app.MainLoop()


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值