开始使用 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 与 Uni​​code

多年来,与 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 中不可用:

演示 Win10 上的截图 **

关闭所有分支的 wxPython 演示: StackOverflow 文档 最近添加的 StackOverflow 文档 一个:AGW 之一,(高级通用小部件): StackOverflow 文档