返回顶部
首页 > 资讯 > 后端开发 > Python >wxpython中自定义事件的实现与使用方法分析
  • 447
分享到

wxpython中自定义事件的实现与使用方法分析

自定义使用方法事件 2022-06-04 18:06:56 447人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本文实例讲述了wxpython中自定义事件的实现与使用方法。分享给大家供大家参考,具体如下: 创建自定义事件的步骤: ① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和se

本文实例讲述了wxpython中自定义事件的实现与使用方法。分享给大家供大家参考,具体如下:

创建自定义事件的步骤:

① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数。

② 创建一个事件类型和一个绑定器对象去绑定该事件到特定的对象。

③ 创建自定义事件对象,设置事件参数,并且使用ProcessEvent()方法将这个实例引入事件处理系统。

④ 绑定自定义事件的event handler。

⑤ 在event handler中响应事件。

示例代码:


#!/usr/bin/env Python
#coding=utf-8
import wx
class MyTestEvent(wx.PyCommandEvent):  #1 定义事件
  def __init__(self, evtType, id):
    wx.PyCommandEvent.__init__(self, evtType, id)
    self.eventArgs = ""
  def GetEventArgs(self):
    return self.eventArgs
  def SetEventArgs(self, args):
    self.eventArgs = args
myEVT_MY_TEST = wx.NewEventType() #2 创建一个事件类型
EVT_MY_TEST = wx.PyEventBinder(myEVT_MY_TEST, 1) #3 创建一个绑定器对象
class MyFrame(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300),pos=(300,300))
    panel = wx.Panel(self, -1)
    self.button1 = wx.Button(panel,id=-1,pos=(40, 40),label="button1")
    self.Bind(wx.EVT_BUTTON, self.OnButton1Click, self.button1)
    self.Bind(EVT_MY_TEST, self.OnHandle)# 4绑定事件处理函数
  def OnButton1Click(self,event):
    self.OnDoTest()
  def OnHandle(self,event):#8 事件处理函数
    dlg = wx.MessageDialog(self, event.GetEventArgs(),'A Message Box',wx.OK | wx.ICON_INFORMATioN)
    dlg.ShowModal()
    dlg.Destroy()
  def OnDoTest(self):
    evt = MyTestEvent(myEVT_MY_TEST, self.button1.GetId()) #5 创建自定义事件对象
    evt.SetEventArgs("test event")  # 6添加数据到事件
    self.GetEventHandler().ProcessEvent(evt) #7 处理事件
if __name__ == '__main__':
  app = wx.PySimpleApp()
  frame = MyFrame()
  frame.Show(True)
  app.MainLoop()

说明:

1.定义MyTestEvent 类为wx.PyCommandEvent的子类,wx.PyCommandEvent是wxPython特定的结构,可以用来创建新的事件类并且可以把c++类和你的Python代码连接起来。

2. wx.NewEventType()类似于wx.NewId();它返回一个唯一的事件类型ID。

3.创建一个绑定器对象,第二个参数的取值位于[0,2]之间,它代表wxId标识号,该标识号用于wx.EvtHandler.Bind()方法去确定哪个对象是事件的源。

4.绑定事件的处理器。

5. 创建自定义事件对象,并把触发事件的控件的ID作为参数传给MyTestEvent的构造函数。

6.添加数据给事件。可以将一些您需要的信息通过这种方法传递进去。

7. ProcessEvent()的调用将这个新事件引入到事件处理系统中,GetEventHandler()调用返回wx.EvtHandler的一个实例,也就是窗口对象本身,即:MyFrame。

8.绑定事件处理函数,这里的事件处理方式是通过MessageDialog显示出传入的事件参数。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

--结束END--

本文标题: wxpython中自定义事件的实现与使用方法分析

本文链接: https://lsjlt.com/news/14415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • wxpython中自定义事件的实现与使用方法分析
    本文实例讲述了wxpython中自定义事件的实现与使用方法。分享给大家供大家参考,具体如下: 创建自定义事件的步骤: ① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和se...
    99+
    2022-06-04
    自定义 使用方法 事件
  • SpringBoot实现自定义事件的方法详解
    目录简介步骤1:自定义事件步骤2:自定义监听器方案1:ApplicationListener方案2:SmartApplicationListener步骤3:注册监听器法1:@Comp...
    99+
    2024-04-02
  • Android实现在xml文件中引用自定义View的方法分析
    本文实例讲述了Android实现在xml文件中引用自定义View的方法。分享给大家供大家参考,具体如下: 在xml中引用自定义view 方法一: <view class...
    99+
    2022-06-06
    xml文件 XML view 方法 自定义view Android
  • JS中自定义事件与观察者模式实例分析
    这篇文章主要介绍了JS中自定义事件与观察者模式实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS中自定义事件与观察者模式实例分析文章都会有所收获,下面我们一起来看看吧。一、前言观察者模式 也称发布-订阅...
    99+
    2023-07-02
  • Vue组件中的自定义事件源码分析
    这篇文章主要介绍“Vue组件中的自定义事件源码分析”,在日常操作中,相信很多人在Vue组件中的自定义事件源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue组件中的自定义事件源码分析”的疑惑有所帮助!...
    99+
    2023-06-29
  • 解析Android中使用自定义字体的实现方法
    1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace 2、在Android中可以引入其他字体 。 代码如下:<xml ...
    99+
    2022-06-06
    自定义 方法 字体 Android
  • Java接口定义与实现方法分析
    本文实例讲述了Java接口定义与实现方法。分享给大家供大家参考,具体如下:在java中,我们可以通过继承得到另一个类中的方法,但是这个仅仅满足继承一个方法,那有办法可以多个继承不,就好比,我们人类的基因,总有一部分是继承爸爸,一部分是继承妈...
    99+
    2023-05-30
    java 接口 ava
  • Vue3 中自定义插件的实现方法
    目录1. Vue 插件2. 自定义插件2.1 基本用法2.2 加入组件2.3 加入指令2.4 provide & inject3. 小结最近在录 TienChin 项目,项目...
    99+
    2022-11-13
    Vue自定义插件 Vue3自定义插件
  • 利用PHP实现词法分析器与自定义语言
    目录一、分析需求二、实现需求三、如何使用四、使用场景之前项目有一个需求,业务人员使用中文编写一些自定义公式,然后需要我们后台执行将结果返回到界面上,于是就基于有限状态机写了这个词法分...
    99+
    2022-11-13
    PHP 词法分析器 PHP 词法分析 PHP  分析器
  • Angular4.x Event中DOM事件和自定义事件的示例分析
    这篇文章给大家分享的是有关Angular4.x Event中DOM事件和自定义事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Angular组件和DOM元素通过事件与...
    99+
    2024-04-02
  • Android中自定义view中事件分发机制与处理的示例分析
    这篇文章将为大家详细讲解有关Android中自定义view中事件分发机制与处理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题引事件只有一个,多个人想要处理,处理的对象不是我们想给的对象就是事件...
    99+
    2023-06-25
  • vue封装自定义分页器组件与使用方法分享
    前言 分页是开发各种系统时候最常用的功能,下面为本人封装的一个分页组件。 实现分页器操作需要以下参数 当前页: pageNo每页展示条数: pageSize数据总条数 : total...
    99+
    2024-04-02
  • PHP怎么实现词法分析与自定义语言
    本文小编为大家详细介绍“PHP怎么实现词法分析与自定义语言”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP怎么实现词法分析与自定义语言”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。    ...
    99+
    2023-06-26
  • WPF自定义路由事件的示例分析
    这篇文章主要为大家展示了“WPF自定义路由事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WPF自定义路由事件的示例分析”这篇文章吧。一、声明路由事件变量并注册定义只读的静态变量字段...
    99+
    2023-06-29
  • android自定义组件实现方法
    本文实例讲述了android自定义组件实现方法。分享给大家供大家参考。具体如下: atts.xml: <?xml version="1.0" encoding...
    99+
    2022-06-06
    方法 Android
  • JMeter自定义日志与日志分析的实现
    目录1 JMeter日志概览2 JMeter自定义日志3 JMeter日志分析1 JMeter日志概览 JMeter与Java程序一样,会记录事件日志,日志文件保存在bin目录中,名...
    99+
    2024-04-02
  • Flex中如何使用自定义事件
    Flex中如何使用自定义事件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Flex自定义事件事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。在高级语言中...
    99+
    2023-06-17
  • nodejs 中模拟实现 emmiter 自定义事件
    nodejs 中模拟实现 emmiter 自定义事件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8...
    99+
    2022-06-04
    自定义 事件 nodejs
  • Android 自定义View实现单击和双击事件的方法
    自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 on...
    99+
    2022-06-06
    view 方法 事件 自定义view Android
  • mysql自定义函数原理与用法实例分析
    本文实例讲述了mysql自定义函数原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04...
    99+
    2022-05-26
    mysql 自定义函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作