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搭建微信公众平台
Feb 09 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
如何实现删除numpy.array中的行或列
May 08 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python生成任意频率正弦波方式
Feb 25 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
python判断all函数输出结果是否为true的方法
Dec 03 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实现的Captcha验证码类实例
2014/09/22 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JavaScript入门基础
2015/08/12 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Python基于PycURL实现POST的方法
2015/07/25 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python 实现return返回多个值
2019/11/19 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
python使用建议与技巧分享(一)
2020/08/17 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
毕业生简单求职信
2013/11/19 职场文书
工作自我评价怎么写
2014/01/29 职场文书
交通事故检查书范文
2014/01/30 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
安全教育片观后感
2015/06/17 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL