python-wxpython常用术语理解

1,在你的应用程序中一个顶级窗口对象是一个窗口部件(通常是一个框架),它不被别的窗口部件所包含。顶级窗口对象通常是你的应用程序的主窗口,它包含用户与之交互的窗口部件和界面对象。
1.1级窗口对象通常是类wx.Frame的子类,也可以是wx.Dialog的子类.
1.2通过反复调用SetTopWindow()将反复改变当前的主顶级窗口,因为一个应用程序一次只能有一主顶级窗口。

2,wx.Frame的使用
2.1框架就是用户通常称的窗口。那就是说,框架是一个容器,wx.Frame是所有框架的父类。这里也有少数专用的wx.Frame子类,你可以使用它们
2.2 当你创建wx.Frame的子类时,你的类应该调用其父类的构造器wx.Frame.__init__()。其原型的参数如下:
1 wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition,
2 size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
3 name="frame")
参数的说明如下:

parent:框架的父窗口。对于顶级窗口,这个值是None。框架随其父窗口的销毁而销毁。取决于平台,框架可被限制只出现在父窗口的顶部。在多文档界面的情况下,子窗口被限制为只能在父窗口中移动和缩放。
id:关于新窗口的wxPython ID号。你可以明确地传递一个。或传递-1,这将导致wxPython自动生成一个新的ID。
title:窗口的标题。
pos:一个wx.Point对象,它指定这个新窗口的左上角在屏幕中的位置。在图形用户界面程序中,通常(0,0)是显示器的左上角。这个默认的(-1,-1)将让系统决定窗口的位置。
size:一个wx.Size对象,它指定这个窗口的初始尺寸。这个默认的(-1,-1)将让系统决定窗口的初始尺寸。
style:指定窗口的类型的常量。你可以使用或运算来组合它们。
name:框架的内在的名字。以后你可以使用它来寻找这个窗口。
记住,这些参数将被传递给父类的构造器方法:wx.Frame.__init__()。

创建wx.Frame子类的方法如下所示:

 class MyFrame(wx.Frame):

 def __init__(self):
 wx.Frame.__init__(self, None, -1, "My Friendly Window",
 (100, 100), (100, 100))

3.wxpython的ID
3.1在wxPython中,ID号是所有窗口部件的特征
3.2在wxPython中,ID号的最重要的用处是在指定的对象发生的事件和响应该事件的回调函数之间建立唯一的关联。使用方式有三种:
3.2.1明确地给构造器传递一个正的整数
3.2.2使用wx.NewId()函数
3.2.3传递一个全局常量wx.ID_ANY或-1给窗口部件的构造器
3.4简单的防止ID重复的方式有以下两种:
3.4.1你可以通过调用wx.RegisterId()来确保在应用程序中wxPython不在别处使用你的ID
3.4.2要防止你的程序使用相同的wxPython ID,你应该避免使用全局常量wx.ID_LOWEST和wx.ID_HIGHEST之间的ID号。

4事件驱动
4.1事件就是发生在你的系统中的事,你的应用程序通过触发相应的功能以响应它。
4.2事件有低级和高级的区别,低级的事件指的是鼠标的移动或是按键的按下,高级的事件是指用户定义的按钮和菜单等的响应。
4.3wxPython应用程序通过将特定类型的事件和特定的一块代码相关联来工作,该代码在响应事件时执行。事件被映射到代码的过程称为事件处理。
5术语的理解
事件(event):在你的应用程序期间发生的事情,它要求有一个响应。
事件对象(event object):在wxPython中,它具体代表一个事件,其中包括了事件的数据等属性。它是类wx.Event或其子类的实例,子类如wx.CommandEvent和wx.MouseEvent。注意:一个事件类可以有多个事件类型。
事件类型(event type):wxPython分配给每个事件对象的一个整数ID。事件类型给出了关于该事件本身更多的信息。例如,wx.MouseEvent的事件类型标识了该事件是一个鼠标单击还是一个鼠标移动。
事件源(event source):任何wxPython对象都能产生事件。例如按钮、菜单、列表框和任何别的窗口部件。
事件驱动(event-driven):一个程序结构,它的大部分时间花在等待或响应事件上。
事件队列(event queue):已发生的但未处理的事件的一个列表。
事件处理器(event handler):响应事件时所调用的函数或方法。也称作处理器函数或处理器方法。
事件绑定器(event binder):一个封装了特定窗口部件,特定事件类型和一个事件处理器的wxPython对象。为了被调用,所有事件处理器必须用一个事件绑定器注册。
wx.EvtHandler:一个wxPython类,它允许它的实例在一个特定类型,一个事件源,和一个事件处理器之间创建绑定。(注意,这个类与先前定义的事件处理函数或方法不是同一个东西。)
6 wxpython中的主要事件
wx.CloseEvent:当一个框架关闭时触发。这个事件的类型分为一个通常的框架关闭和一个系统关闭事件。

wx.CommandEvent:与窗口部件的简单的各种交互都将触发这个事件,如按钮单击、菜单项选择、单选按钮选择。这些交互有它各自的事件类型。许多更复杂的窗口部件,如列表等则定义wx.CommandEvent的子类。事件处理系统对待命令事件与其它事件不同。默认情况,只有wx.CommandEvent及其子类的实例向上展开至容器级。其它的所有事件不这样做。 
wx.KeyEvent:按按键事件。这个事件的类型分按下按键、释放按键、整个按键动作。
wx.MouseEvent:鼠标事件。这个事件的类型分鼠标移动和鼠标敲击。对于哪个鼠标按钮被敲击和是单击还是双击都有各自的事件类型。

wx.PaintEvent:当窗口的内容需要被重画时触发。

wx.SizeEvent:当窗口的大小或其布局改变时触发。

wx.TimerEvent:可以由类wx.Timer类创建,它是定期的事件。


##################################################################知识点插入#########################################
1,何时使用self和__init__
1.1当定义你自已的类方法时,你必须 明确将 self 作为每个方法的第一个参数列出,包括 __init__。
1.2当从你的类中调用一个父类的一个方法时,你必须包括 self 参数。
1.3但当你从类的外部调用你的类方法时,你不必对 self 参数指定任何值;你完全将其忽略,而 Python 会自动地替你增加实例的引用。
############################################################################################################################

posted @ 2017-04-01 09:55  小小帝八哥  阅读(664)  评论(0编辑  收藏  举报