如果你想知道关于 Python GUI 库更多的知识和在实际应用中的操作技巧的话,你可以通过我们的文章去了解相关内容的详细介绍,希望你在相关的内容介绍中,发现自己想要得到的关于Python GUI 库的知识。
Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows、Linux、Mac OSX 和许多手持平台。QT 具有良好结构化(但灵活)的面向对象的结构、清晰的文档以及直观的 API。David Mertz 和 Boudewijn Rempt 探讨了 Qt 库,集中讨论了允许 Python 程序员访问 Qt 功能的 PyQt 绑定。
一般来说,选择用于应用程序的 GUI 工具箱会是一件棘手的事。使用 Python(许多语言也一样)的程序员可以选择的 GUI 工具箱种类繁多,而每个工具箱都有各自的优缺点。有些速度比其它工具箱快,有些比较小;有些易于安装,有些更适合于跨平台使用(对于这一点,还要指出,有些支持您需要满足的特定特性)。当然,各种库都相应具有各种许可证。#t#
对于 Python 程序员而言,缺省的 GUI 选择是 Tk(通过 Tkinter 绑定)— 其原因显而易见。Tkinter 和闲置的 IDE 是由 Python 创始人编写的,它们是作为大多数 Python 分发版的缺省选择而出现的。标准 Python 文档讨论了 Tkinter,但没有涉及任何其它 GUI 绑定。
这是故意的!至少可以这么认为,如果 Tk 和 Tkinter 不是这么糟糕,程序员就没有理由去寻找替代品了。要诱导 Python 程序员放弃缺省选择,那么工具箱必须提供额外的东西。PyQt 就是这样一个工具箱。
PyQt 所具有的优点远远超过了 Tkinter(它也有几个缺点)。Qt 和 PyQt 速度都很快;Qt 和 PyQt 的设计完全是面向对象的;Qt 提供了一个设计良好的窗口构件集合,它比 Tk 所提供的要大得多。就其缺点而言,Qt 的许可证受到的限制比许多工具箱(至少在非 Linux 平台方面)都多;
正确安装 Qt 和 PyQt 常常会很复杂;另外,Qt 是一个相当大的库。PyQt 应用程序的用户将需要设法完成安装 Qt 和 PyQt,这使分发变得很困难。(请阅读本文后面的用于其它语言的 Qt 绑定。)
PyQt 严格遵循 Qt 的发放许可。特别是,它可用于 UNIX/X11 平台上的 GPL,并可用于 Zaurus 上的 Qt Palmtop Environment 环境,还存在用于较老的 Qt 版本的免费(free-as-in-free-beer)Windows 软件包。PyQt 的商业许可证可用于 Windows。
对于本文而言,PyQt 有一个方面优于许多其它工具箱,它值得我们特别关注。Qt 使用一种称为信号/插槽(signals/slots)的机制在窗口构件(以及其它对象)之间传递事件和消息。这种机制完全不同于包括 Tkinter 在内的大多数工具箱所用的回调(callback)机制。使用信号/插槽以灵活且可维护的方式控制对象间通信要比使用脆弱的回调风格容易得多。应用程序越大,Qt 的这个优势就越重要。
本文的作者之一 Boudewijn Rempt 已经出版了一本有关使用 PyQt 进行应用程序开发的书籍。GUI Programming with Python: QT Edition(请参阅参考资料)显示了如何设计和开发完整的 GUI 应用程序,其中包括从最初的构思到分发的全过程。