wxPython 教程(一): wxPython 简介

总目录:wxPython 教程 目录
本节内容:wxPython 简介 介绍
本节译自:zetCode
下一篇:wxpython 教程 (二): 开始编写

wxPython 简介

应用(application)是用来执行特定任务或一组任务的电脑程序。网页浏览器、媒体播放器、文字处理程序都是典型的应用样例。不同应用可以划分至四种不同的应用领域:

tutorial wxpython-jiaocheng

图:不同种类的应用领域

在线商店应用、wiki、微博等都是受欢迎的网页(web)应用,我们通过网页浏览器可以访问它们。桌面(Desktop)应用的例子则包括 Maya、Opera、Open Office或 Winamp。企业级(Enterprise)应用则指复杂的大型应用。移动(Portables)应用包括所有为手机等移动设备开发的应用。

编程语言

目前有很多种非常流行的编程语言,以下列表来自于TIOBE  Programming  Community Index (2014,10)。

排名 语言 投票率
1 C 17.6%
2 Java 13.5%
3 Objective-C 10.1%
4 C++ 4.8%
5 C# 4.7%
6 Basic 3.5%
7 PHP 2.9%
8 Python 2.3%
9 Perl 2.1%
10 Transact-SQL 2.1%

可见python属于最热门语言之一。

Python

tutorial wxpython-jiaochengPython 是一种脚本语言,受ABC 和Haskell编程语言的启发,最初由Guido van Rossum开发,发布于1991年。Python是一种高级、通用、跨平台的解释性语言,有人也叫它“动态语言”。Python非常简约易学,而且不常用分号或括号,它使用缩进来控制代码结构。如今有来自世界各地的大批志愿者维护Python项目。

Python程序员在编写图形用户界面时,至少有三种选择:PyGTK、wxPython以及PyQt。本教程主要讲解wxPython的使用。

wxPython

wxPython是一个创建桌面GUI应用的跨平台工具包(toolkit),它的主要开发者是Robin Dunn。使用wxPython,开发者可以在Windows、Mac和多种Unix系统上开发应用程序。wxPython是对成熟的跨平台C++ 库wxWidgets的封装,主要包括以下5个基本模块:

tutorial wxpython-jiaocheng

图:wxPython 模块

Controls模块提供图形应用中通用的部件(widgets),比如按钮(Button)、工具栏(Toolbar)或者记事本(Notebook)。在Windows系统中,widgets被称为controls。Core模块包含了开发中用到的各种类(classes)。这些类包括Object类(所有类的父类)、Sizers类(对部件进行布局的类)、Events类(事件)、基本的几何结构类(如点Point和矩形Rectangle)。GDI (Graphics Device Interface,图形设备接口)是在部件上作图的类的集合,包括操作字体(Fonts)、颜色(Colours)、笔刷(Brushes)、笔(Pen)和图片(Images)等类。Misc包括多种其他类,比如日志(logging)、应用配置、系统设置等。Windows模块包含多种窗口类,比如面板(Panel)、对话框(Dialog)、框架(Frame)或者可滚动窗口(Scrolled Window)。

wxPython API

wxPython API是一系列方法和对象的集合。技术上来说,wxPython是对C ++图形界面编程API wxWidgets的封装,所以它不是native的API,即不是直接由python编写的。

在wxPython中,我们有很多的widgets,他们可以被分为以下几组。

Base Widgets

Base Widgets,这些widgets提供最基本的功能,被称作祖先类,一般不直接使用。

tutorial wxpython-jiaocheng

图:Base widgets

Top level Widgets

Top level Widgets,即顶级widgets,这些widgets彼此独立存在。

tutorial wxpython-jiaocheng

图:Top level Widgets

Containers

Containers即容器,一般包含其他widgets。

tutorial wxpython-jiaocheng

图:Containers

Dynamic Widgets

Dynamic widgets,即动态部件,这些部件可以直接被用户操作,如下图所示。

tutorial wxpython-jiaocheng

图:Dynamic widgets

Static Widgets

Static Widgets,即静态部件,用户无法对它们进行编辑。

tutorial wxpython-jiaocheng

图:Static Widgets

Other Widgets

Other Widgets,即其他部件,包括工具栏、状态栏以及菜单栏。

tutorial wxpython-jiaocheng

图:Other Widgets

继承

wxPython中部件之间存在继承的关系,对于面向对象编程来说,继承是非常重要的一部分。widgets构建出层级关系,widgets可以从其他widgets继承功能特性。已存在的类叫做基类、父类或祖先,继承的类叫做派生类、子类或者后代。这些术语借鉴自生物学概念。

tutorial wxpython-jiaocheng

图:继承图

比如我们在应用中使用了一个button widget,这个button widget继承自4个不同的基类。最近的类是wx.Control类。controls是指可以放在其他容器widgets上的widgets。并非所有的widgets都是controls,比如wx.Dialog就不是。

button widget是一种窗口部件,所有出现在屏幕上的部件都是小窗口,所以它们都继承自wx.Window类。

每个window对象都可以对事件(Events)作出响应,button widget也不例外。点击按钮时,会触发wx.EVT_COMMAND_BUTTON_CLICKED事件。Button widget通过wx.Window继承了wx.EvtHandler类。每一个响应事件的widget都必须继承自wx.EvtHandler类。

最后,所有的类都继承自wx.Object类,它是wxPython中所有类的父类。

以上,即本节内容:wxPython简介。你无须完全看懂以上,相关内容我们会在后续章节中详细介绍。


上一篇:wxPython教程目录                    下一篇:wxpython教程(二): 开始编写

发表评论

电子邮件地址不会被公开。 必填项已用*标注