wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。

  和Python语言与wxWidgets GUI工具库一样,wxPython是开源软件。这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。

  wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32位微软Windows操作系统、大多数Unix或类Unix系统、苹果Mac OS X。

  由于使用Python作为编程语言,wxPython编写简单、易于理解。

1)wxPython中类的继承顺序:

object——>wx.Object——>wx.EvtHandler——>wx.PyApp——>wx.App——>[wx.PySimpleApp,wx.PyWidgetTester]


2)wxPython是wxWidgets的python实现,‘w’——for microsoft windows;‘x’——for unix x server。

3)wxPython最基本的组件是wx.App(应用程序,用过EventLoop来管理生命周期)和wx.Frame(窗口,通过窗口内添加widget组件、控件、格式和行为)

4)每个wxPython只能包含一个wx.App

5)每个wxPython至少包含一个wx.Frame

6)wxPython应用说明:

引用wxPython: import wx(最先)

import wx.***(其他库紧跟其后)   非wx不用考虑顺序

创建App和Frame的顺序:先创建App应用程序对象,后创建Frame框架(即窗口),然后显示(show(true)),最后启动App的MainLoop循环。

7)application对象必须是wx.App的一个实例,或在OnInit()方法中定义的一个子类的一个实例。当应用程序启动的时候,OnInit()方法将被wx.App父类调用。

8)


wx.Frame类不带参数的默认构造函数。它也有一个重载的构造函数的参数如下 -


Wx.Frame (parent, id, title, pos, size, style, name)   【请参考:http://www.yiibai.com/wxpython/wx_frame_class.html】


S.N.

参数 & 描述

1

Parent

窗口的父类。如果“None”被选择的对象是在顶层窗口。如果“None”未被选择时,所述框显示在父窗口的顶层

2

id



窗口标识。通常-1为了让标识符自动生成

3

Title



标题出现在标题栏

4

Pos



帧(frame)的开始位置。如果没有给出,wxDefaultPosition是由操作系统决定

5

Size



窗口的尺寸。 wxDefaultSize 是由操作系统决定

6

style



窗口的外观按样式风格常数控制

7

name



对象的内部名称

窗口样式常量


wx.DEFAULT_FRAME_STYLE

wx.CAPTION

wx.MINIMIZE_BOX

wx.MAXIMIZE_BOX

wx.CLOSE_BOX

wx.SYSTEM_MENU

wx.RESIZE_BORDER

wx.STAY_ON_TOP

wx.FRAME_FLOAT_ON_PARENT

wx.DEFAULT_FRAME_STYLE 可被定义为如下 −

  • wx.MINIMIZE_BOX
  • wx.MAXIMIZE_BOX
  • wx.RESIZE_BORDER
  • wx.SYSTEM_MENU
  • wx.CAPTION
  • wx.CLOSE_BOX
  • wx.CLIP_CHILDREN

示例


window = wx.Frame(None, -1, “Hello”, pos = (10,10), size = (300,200),
   style = wxDEFAULT_FRAME_STYLE, name = "frame")

9)事件术语


事件(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类,它允许它的实例在一个特定类型,一个事件源,和一个事件处理器之间创建绑定。注意,这个类与先前定义的事件处理函数或方法不是同一个东西。