简介

在开始GUI 编程之前,首先介绍Python 默认的UI 工具包Tkinter。我们将先从安装Tkinter
开始,因为Tkinter 不总是默认安装的(尤其是当你自己从源码构建Python 的时候)。接下来
会是一个对客户端/服务端架构的快速回顾,该话题在第2 章中已经进行过介绍,不过在这里
还会有一些关联。

Tcl、Tk 和Tkinter

Tkinter 是Python 的默认GUI 库。它基于Tk工具包,该工具包最初是为工具命令语言(Tool
Command Language,Tcl)设计的。Tk 普及后,被移植到很多其他的脚本语言中,包括Perl
(Perl/Tk)、Ruby(Ruby/Tk)和Python(Tkinter)。结合Tk 的GUI 开发的可移植性与灵活性,
以及与系统语言功能集成的脚本语言的简洁性,可以让你快速开发和实现很多与商业软件品
质相当的GUI 应用。

如果你是GUI 编程新手,会惊喜地发现它多么简单。此外,你还会发现使用Python 和
Tkinter 可以提供给你一种高效而又令人兴奋的方法来创建有趣(可能还很有用)的应用,而
如果直接使用C/C++的原生窗体系统库进行编程则会花费较长的时间。一旦设计好了应用程
序及其外观,就可以使用称为控件(widget)的基础构建块来拼凑出你想要的东西,最后再
添加功能使其真实可用。

如果你是使用Tk 的老手,无论熟悉的是Tcl 还是Perl,都会发现Python 给予了GUI 编
程一种新的方式。最重要的是,它提供了一种更快速地构建GUI 程序的原型系统。此外还要
记住,你依然能够使用Python 的系统访问、网络操作、XML、数值与可视化处理、数据库
访问、所有其他标准库和第三方扩展模块。

只要系统中安装了Tkinter,不超过15 分钟时间就可以让你的第一个GUI 程序运行起来。

安装和使用Tkinter

Tkinter 在系统中不是默认必须安装的,可以通过在Python 解释器中尝试导入Tkinter 模
块(Python 1 和2 版本,在Python 3 中重命名为tkinter)来检查Tkinter 是否可用。如果Tkinter
可用,则不会有错误发生,如下所示。

>>> import Tkinter
>> >

如果你的Python 解释器在编译时没有启用Tkinter,模块导入将会失败。

>>> import Tkinter
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "/usr/lib/pythonX.Y/lib-tk/Tkinter.py", line 8, in ?
import _tkinter # If this fails your Python may not
be configured for Tk
Im portError: No module named _tkinter

你可能需要重新编译Python 解释器以使用Tkinter。这通常会涉及编辑Modules/Setup 文
件,然后启用所有正确的设置,来编译带有Tkinter 的Python 解释器;或者勾选安装Tk 到你
的系统中。查阅README 文件,以获取你的Python 版本编译Tkinter 到系统中的特定说明。
编译好解释器后,需要启动一个新的Python 解释器,否则,它还会和没有Tkinter(实际上,
它就是旧的解释器)的表现一样。

客户端/服务端架构

第2 章介绍了客户端/服务端计算的概念。窗口系统是软件服务器的另一个例子,它们运
行在一个带有显示设备(如显示器)的计算机中。同样地,还有需要客户端—需要在端窗
口环境中执行的程序,也称为GUI 应用。上述这些应用无法脱离窗口系统独立运行。

当引入网络编程后,该架构变得更加有趣。通常一个GUI 应用执行时,它会在启动程序
的计算机上进行显示(通过窗口服务器);但是在一些网络窗口环境中,也可以选择另一台计
算机的窗口服务器进行应用的显示,例如UNIX 中的X Window 系统。因此,可以在一台计
算机上运行GUI 程序,而在另一台机器上进行显示。

更多推荐