开始使用 wxpython
什么是 wxPython
简单地说,wxPython 是一组绑定到 wxWidgets C++ Cross Platform GUI 库的。
好的什么是 wxWidgets
wxWidgets 库为各种 GUI 元素提供免费,免费和开源的抽象集,以便在可用的情况下仍然使用本机控件,从而保持原生外观,感觉和速度。因此,它为 GUI 创建和平台中的许多其他实用程序提供了抽象,允许开发人员使用单个代码库为 Windows,Mac OS X,Linux 和其他平台创建应用程序。wxWidgets 始于 1992 年,你可以在这里看到详细的历史。wxWidgets 库是在 wxWindows 许可证下发布的,该许可证基于 L-GPL 但具有异常子句。 exception 子句允许你动态或静态地将应用程序链接到 wxWidgets 而不用要求为你自己的应用程序分发源代码。换句话说,你可以使用 wxWidgets 的为任一免费或商业项目,在没有成本。许可证鼓励你回馈你对 wxWidgets 库本身所做的改进。
重点介绍,wxWidgets 包含 100 个用于跨平台应用程序开发的类 :
- 使用 Sizer 的窗口布局
- 设备上下文(以及钢笔,画笔和字体)
- 综合事件处理系统
- HTML 帮助查看器
- 声音和视频播放
- Unicode 和国际化支持
- 文档/视图架构
- 打印结构
- 套接字
- 多线程
- 文件和目录操作
- 在线和上下文相关的帮助
- HTML 渲染
- 基本容器
- 图像加载,保存,绘图和操作
- 日期时间库和计时器
- 错误处理
- 剪贴板和拖放
请注意,其中一些工具( 例如线程) 实际上与 GUI 无关,但提供了有用的跨平台抽象,因此,例如,在线程化的情况下,一组应用程序代码将在任何支持的平台上运行。
多年来,除了从一组源代码,为 ASCII 和 Unicode 构建的静态和动态库的调试构建之外, wxWidgets 库还生成了 4 个独立的构建。它通常以最常见的变体预先构建,并作为源代码构建,具有针对目标环境的各种选项以及支持众多工具链的开发人员 C++工具链。
这个库的 python 绑定和一些添加形成了 wxPython。
回到什么是 wxPython,(它给了我什么)?
wxPython 为开发人员提供了一种从跨平台 GUI 库中获益的方式,具有明确的许可证,同时还提供了 Python 的优势。像 wxWidgets 和 Python 一样,wxPython 是免费的,免费和开源的,可以在免费和商业项目中使用和分发,而不需要分发你的源代码。
- 完整的 GUI 套件包括(但不限于):
- Windows(包括 MDI Windows)
- 奇才
- 框架和迷你框架
- 对话,标准,高级和自定义
- 书籍,树木,网格和数据视图控件
- 仪表,滑块,旋转器,动画,剪贴板,拖放
- HTML,PDF 和图像查看器支持
- GUI 组件可以绝对定位,但强烈建议使用基于 sizer 的布局,支持自动调整大小等。
- 跨平台 - 支持 Windows,OS-X 和 Linux 的 GUI,只需一个代码库*,代码中没有条件语句*
- 原生速度,外观和感觉。
- 快速原型,测试和调试 - 记住这是 python
- 运行和编辑演示包中几乎所有内容的示例。
- 即使在商业产品中也可以免费使用免费许可。
- 如果有必要,你的 python GUI 可以稍后重构为 C++ wxWidgets GUI,因为它已经在使用它。
- StackOverflow 和邮件列表上的大型,活跃且有用的用户和开发人员社区。
请注意,在 python 本身提供用于实现 wxWidgets 的实用程序功能的跨平台机制的情况下,线程再次成为一个很好的示例,故意从 wxPython 中省略。
wxPython 还有一个非常大的演示套件,可以在 Documents and Demo 包中运行,测试和编辑。
wxPython 的味道
ASCII 与 Unicode :
多年来,与 wxWidgets 一样,开发人员必须在 ASCII 和 Unicode 构建之间进行选择,并且需要针对特定版本的 python 以及 32/64 位选项进行构建。从 wxPython 2.8.9 开始,wxPython 的 ASCII 唯一版本已被删除,因此 Unicode 支持始终可用。
经典与菲尼克斯 :
从 wxPython 3.0.0 开始,已经发布了 wxPython 的发布 Classic
版本以及 Phoenix 目前尚未发布的版本。经典构建往往落后于相同数字的 wxWidgets 构建,文档包是 C++ - 它可以在各种平台上下载(参见 Classic 的安装 ),在 windows 作为可执行安装程序的情况下。Phoenix 绑定在很大程度上是自动生成的,应该更紧密地关注 wxWidgets 构建,还包括 wxPython 特定文档 - 它可以从源代码或夜间版本构建,因为可以使用 pip 获取轮子 (参见 Phoenix 的安装 )。
在 wxPython 但不是 wxWidgets
wxPython 使用许多功能扩展了 wxWidgets 库,*以下只是一些,*在 wxWidgets 中不可用:
- 程序员编辑和外壳: 地壳 , crustslices , AlaCart 和 AlaMode , AlaModeTest
- 解释器和魔术师
- 检查 - 这允许你启动一个窗口来浏览所有应用程序 GUI 组件。
- 一套广泛的演示
演示 Win10 上的截图 **
关闭所有分支的 wxPython 演示: 最近添加的 一个:AGW 之一,(高级通用小部件):