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中的类学习笔记
Sep 23 Python
Python导入oracle数据的方法
Jul 10 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
微信跳一跳python辅助脚本(总结)
Jan 11 Python
Python入门之后再看点什么好?
Mar 05 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python 同时读取多个文件的例子
Jul 16 Python
python中eval与int的区别浅析
Aug 11 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
python中HTMLParser模块知识点总结
Jan 25 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
图象函数中的中文显示
2006/10/09 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
Vue渲染函数详解
2017/09/15 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
Django进阶之CSRF的解决
2018/08/01 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
万年牢教学反思
2014/02/15 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
新闻人物通讯稿
2014/10/09 职场文书
自主招生自荐信格式
2015/03/04 职场文书