wxPython事件驱动实例详解


Posted in Python onSeptember 28, 2014

本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考。具体方法如下:

先来看看如下代码:

#!/usr/bin/python 
 
# moveevent.py 
 
import wx  #导入wx库 
 
class MoveEvent(wx.Frame): 
  def __init__(self, parent, id, title): 
    wx.Frame.__init__(self, parent, id, title, size=(250, 180)) #窗口大小为(250, 180) 
 
    wx.StaticText(self, -1, 'x:', (10,10))#parent, id, title, point 
    wx.StaticText(self, -1, 'y:', (10,30)) 
    self.st1 = wx.StaticText(self, -1, '', (30, 10)) 
    self.st2 = wx.StaticText(self, -1, '', (30, 30)) 
 
    self.Bind(wx.EVT_MOVE, self.OnMove)  #绑定Frame的move事件 
 
    self.Centre() 
    self.Show(True) 
 
  def OnMove(self, event): 
    x, y = event.GetPosition() 
    self.st1.SetLabel(str(x)) 
    self.st2.SetLabel(str(y)) 
     
app = wx.App()#生成应用程序 
MoveEvent(None, -1, 'move event')#调用自己的类,三个参数为:parent, id , title 
app.MainLoop()#应用程序事件循环

程序运行效果如下图所示:

wxPython事件驱动实例详解

wxStaticText的两个构造函数官方文档如下:
wxStaticText ()
   Default constructor.
wxStaticText (wxWindow *parent, wxWindowID id, const wxString &label, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString&name=wxStaticTextNameStr)
 
Constructor, creating and showing a text control.

The event parameter in the OnMove() method is an object specific to a particular event type. In our case it is the instance of a wx.MoveEvent class. This object holds information about the event. For example the Event object or the position of the window. In our case the Event object is the wx.Frame widget. We can find out the current position by calling the GetPosition() method of the event.

OnMove()方法中的event参数是一种特殊的事件类型,在我们的例子中,它是wx.MoveEvnet类的一个实例.这个对象保存了事件的一些信息,比如这个事件对象或者窗口的位置.在我们例子中事件对象是一个wx.Frame控件.我们可以通过调用事件对象的GetPosition()得到当前位置信息.

Vetoing events

Sometimes we need to stop processing an event. To do this, we call the method Veto().

#!/usr/bin/python 
 
# veto.py 
 
import wx 
 
class Veto(wx.Frame): 
  def __init__(self, parent, id, title): 
    wx.Frame.__init__(self, parent, id, title, size=(250, 200)) 
 
 
    self.Bind(wx.EVT_CLOSE, self.OnClose) 
 
    self.Centre() 
    self.Show(True) 
 
  def OnClose(self, event): 
 
    dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', 
      wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) 
    ret = dial.ShowModal() 
    if ret == wx.ID_YES: 
      self.Destroy() 
    else: 
      event.Veto() 
 
app = wx.App() 
Veto(None, -1, 'Veto') 
app.MainLoop()

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

Python 相关文章推荐
Python中的getopt函数使用详解
Jul 28 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
wxPython实现整点报时
Nov 18 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
如何用python清洗文件中的数据
Jun 18 Python
python中的多重继承实例讲解
Sep 28 #Python
python错误处理详解
Sep 28 #Python
python中实现定制类的特殊方法总结
Sep 28 #Python
python之wxPython菜单使用详解
Sep 28 #Python
python中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 #Python
python之wxPython应用实例
Sep 28 #Python
Python实现从url中提取域名的几种方法
Sep 26 #Python
You might like
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
js 单引号 传递方法
2009/06/22 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
html5与css3小应用
2013/04/03 HTML / CSS
公务员培训自我鉴定
2013/09/19 职场文书
小学毕业演讲稿
2014/04/25 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
机关职员工作检讨书
2014/10/23 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技