wxPython 简介
最后修改于 2023 年 1 月 10 日
本章是对 wxPython 工具包的介绍。
wxPython 是一个用于创建桌面 GUI 应用程序的跨平台工具包。 wxPython 的主要作者是 Robin Dunn。 使用 wxPython,开发人员可以在 Windows、Mac 和各种 Unix 系统上创建应用程序。 wxPython 是 wxWidgets 的一个封装,后者是一个成熟的跨平台 C++ 库。
Python
Python 是一种成功的脚本语言。 它最初由 Guido van Rossum 开发。 它于 1991 年首次发布。 Python 的灵感来自于 ABC 和 Haskell 编程语言。 Python 是一种高级的、通用的、多平台的、解释型语言。 有些人更喜欢称它为动态语言。 它很容易学习。 Python 是一种极简语言。 它的最显着的特征之一是它不使用分号和括号。 Python 使用缩进。 今天,Python 由世界各地的一大群志愿者维护。
对于创建图形用户界面,Python 程序员可以在三个不错的选项中选择:PyGTK、wxPython 和 PyQt。
wxPython 模块
wxPython 是一个用于创建桌面 GUI 应用程序的跨平台工具包。 wxPython 的主要作者是 Robin Dunn。 使用 wxPython,开发人员可以在 Windows、Mac 和各种 Unix 系统上创建应用程序。 wxPython 是 wxWidgets 的一个封装,后者是一个成熟的跨平台 C++ 库。 wxPython 由五个基本模块组成。
Controls 模块提供了在图形应用程序中找到的常见小部件。 例如,按钮、工具栏或笔记本。 在 Windows 操作系统下,小部件被称为控件。 Core 模块由开发中使用的基本类组成。 这些类包括 Object 类,它是所有类的母类,Sizers,用于小部件布局,Events,基本几何类,如 Point 和 Rectangle。 图形设备接口 (GDI) 是一组用于在小部件上绘图的类。 此模块包含用于操作字体、颜色、画笔、笔或图像的类。 Misc 模块包含各种其他类和模块函数。 这些类用于日志记录、应用程序配置、系统设置、使用显示器或操纵杆。 Windows 模块由构成应用程序的各种窗口组成,例如 Panel、Dialog、Frame 或 Scrolled Window。
wxPython API
wxPython API 是一组方法和对象。 小部件是 GUI 应用程序的基本构建块。 在 Windows 下,小部件被称为控件。 我们可以大致将程序员分为两组:他们编写应用程序或库。 在我们的例子中,wxPython 是一个库,应用程序程序员使用它来编写应用程序。 从技术上讲,wxPython 是对名为 wxWidgets 的 C++ GUI API 的封装。 因此,它不是一个原生 API; 即,它不是直接用 Python 编写的。
在 wxPython 中,我们有很多小部件。 它们可以分为几个逻辑组。
基本小部件
这些小部件为派生小部件提供基本功能。 它们被称为祖先。 它们通常不直接使用。
顶级小部件
这些小部件彼此独立存在。
容器
容器包含其他小部件。
动态小部件
这些小部件可以被用户编辑。
静态小部件
这些小部件显示信息。 它们不能被用户编辑。
其他小部件
这些小部件在应用程序中实现状态栏、工具栏和菜单栏。
继承
wxPython 中的小部件之间存在特定关系。 这种关系是通过继承来发展的。 继承是面向对象编程的关键部分。 小部件形成一个层次结构。 小部件可以从其他小部件继承功能。 现有类被称为基类、父类或祖先。 我们将继承的小部件称为派生小部件、子小部件或后代。
假设我们在应用程序中使用按钮小部件。 按钮小部件从四个不同的基类继承。 最接近的类是 wx.Control 类。 按钮小部件是一种小窗口。 所有出现在屏幕上的小部件都是窗口。 因此,它们从 wx.Window 类继承。 有一些对象是不可见的。 例如,sizers、设备上下文或区域设置对象。 也有一些类是可见的,但它们不是窗口。 例如,颜色对象、插入符对象或光标对象。 并非所有小部件都是控件。 例如,wx.Dialog 不是一种控件。 控件是放置在其他小部件(称为容器)上的小部件。 这就是我们有一个单独的 wx.Control 基类的原因。
每个窗口都可以对事件做出反应。 按钮小部件也是如此。 通过单击按钮,我们启动了 wx.EVT_COMMAND_BUTTON_CLICKED 事件。 按钮小部件通过 wx.Window 类继承了 wx.EvtHandler。 每个对事件做出反应的小部件都必须从 wx.EvtHandler 类继承。 最后,所有对象都从 wx.Object 类继承。
这是对 wxPython 的介绍。