combox控件触发事件_Python GUI程序设计03.事件与驱动(2)

wxWidgets采用的是事件驱动型的编程机制。所谓事件,就是我们的程序在运行中发生的事儿。事件可以是低级的用户动作,如鼠标移动或按键按下,也可以是高级的用户动作(定义在wxPython的窗口部件中的),如单击按钮或菜单选择。事件可以产生自系统,如关机。你甚至可以创建你自己的对象去产生你自己的事件。事件会触发相应的行为,即事件函数。程序员的工作就是定义事件函数,以及绑定事件和事件函数之间的关联关系。

01.控件事件

图形用户接口(GUI)有一种元素叫控件。比如按钮、下拉框、列表框和图片等等。上一节我们用到的wx.frame框架,其实也是控件的一种。它们都是可以相应一些常见的事件。

02.鼠标事件

我们在上节程序的基础上绑定一个鼠标移动的事件,当鼠标在框架上移动,会显示当前鼠标在框架的坐标值。

import wx#mainFrame框架类,继承wx.Frameclass mainFrame(wx.Frame):        #重构__init__函数    #当框架初始化时        def __init__(self, parent):                #创建框架,设置标题        wx.Frame.__init__(self, parent, -1, "控件事件")                #设置背景颜色        self.SetBackgroundColour(wx.Colour(224, 224, 224))                #设置框架大小        self.SetSize((520, 220))                #框架屏幕居中        self.Center()                #当鼠标事件发生,将触发OnMouse函数        self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouse)    #-----------------------------------------------        #鼠标经过处理函数    def OnMouse(self,event):        print(event.x,event.y)         #-------------------------------------------#mainApp主程序类,继承wx.Appclass mainApp(wx.App):    #当主程序创建时,响应Init函数    def OnInit(self):        #主程序框由mainFrame创建        self.Frame = mainFrame(None)                #显示主框架        self.Frame.Show()                #必须返回True        return True#-------------------------------------------if __name__ == '__main__':    #创建一个主程序对象    app = mainApp()        #主程序对象运行    app.MainLoop()

运行结果

4cdde4af0bb6fbf1da1611e2bc2bb9c0.png

当鼠标在框架上移动时,就是打印出当前所处的程序框架相对位置。

03.键盘事件

import wx#mainFrame框架类,继承wx.Frameclass mainFrame(wx.Frame):        #重构__init__函数    #当框架初始化时        def __init__(self, parent):                #创建框架,设置标题        wx.Frame.__init__(self, parent, -1, "控件事件")                #设置背景颜色        self.SetBackgroundColour(wx.Colour(224, 224, 224))                #设置框架大小        self.SetSize((520, 220))                #框架屏幕居中        self.Center()                #当键盘按下事件发生,将触发OnKeyDown事伯        self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)    #-----------------------------------------------        #键盘按下处理函数    def OnKeyDown(self,event):        print(event.GetKeyCode())         #-------------------------------------------#mainApp主程序类,继承wx.Appclass mainApp(wx.App):    #当主程序创建时,响应Init函数    def OnInit(self):        #主程序框由mainFrame创建        self.Frame = mainFrame(None)                #显示主框架        self.Frame.Show()                #必须返回True        return True#-------------------------------------------if __name__ == '__main__':    #创建一个主程序对象    app = mainApp()        #主程序对象运行    app.MainLoop()

程序运行结果

bb0c4403e99c081d99ed6e962891c608.png当我们按下键盘按钮,会输出相应的键值。

wxWidgets支持的事件很多,不同的事件有不同的用法,不同的控件也有不同的事件。下面的章节我们再一一解说。

56aa229cc0348710592077653ff1093a.png

关注我们

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值