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使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
Python File readlines() 使用方法
Mar 19 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
python3 webp转gif格式的实现示例
Dec 10 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python小项目之五子棋游戏
Dec 26 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
js表格分页实现代码
2009/09/18 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python本地与全局命名空间用法实例
2015/06/16 Python
python如何定义带参数的装饰器
2018/03/20 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
董事长职责范文
2013/11/08 职场文书
会计专业自我鉴定范文
2013/12/29 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
超市重阳节活动方案
2014/02/10 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
文秘应届生求职信
2014/07/05 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
学雷锋倡议书
2015/01/19 职场文书
办公室主任岗位职责
2015/01/31 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP