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 相关文章推荐
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Python numpy数组转置与轴变换
Nov 15 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
python实现tail实时查看服务器日志示例
Dec 24 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
pytorch查看模型weight与grad方式
Jun 24 Python
Python办公自动化PPT批量转换操作
Sep 15 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简单命令代码集锦
2007/09/24 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
smarty简单入门实例
2014/11/28 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php session的应用详细介绍
2017/03/22 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
用python计算文件的MD5值
2020/12/23 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
巾帼建功标兵事迹材料
2014/05/11 职场文书
学生安全责任书模板
2014/07/25 职场文书
工作自我推荐信范文
2015/03/25 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
活动总结书怎么写
2015/05/11 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
python实现简单石头剪刀布游戏
2021/10/24 Python
详细介绍python操作RabbitMq
2022/04/12 Python