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 02 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
Python使用OpenCV进行标定
May 08 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
Python实现壁纸下载与轮换
Oct 19 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
Python关于OS文件目录处理的实例分享
May 23 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
js 获取radio按钮值的实例
2013/08/17 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
JQuery球队选择实例
2015/05/18 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
pandas 层次化索引的实现方法
2019/07/06 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python基于requests库爬取网站信息
2020/03/02 Python
用python实现名片管理系统
2020/06/18 Python
python 爬取小说并下载的示例
2020/12/07 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
机械专业应届生求职信
2013/12/12 职场文书
铲车司机岗位职责
2014/03/15 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
环保标语大全
2014/06/12 职场文书
新兵入伍心得体会
2014/09/04 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
css3带你实现3D转换效果
2022/02/24 HTML / CSS