8.1.1 程序的用户界面

界面是指两个体系之间的分界与接合部分,例如人-机界面、水-油界面等。在程序设计领域,一个程序的用户界面(user interface,简称 UI)指的是程序中与用户进行交互的部 分,用户通过 UI 向程序输入数据或者请求程序执行特定任务,而程序通过 UI 向用户显示各 种信息。

如果程序员写的程序是自用的,那么用户界面是怎样的并不重要,因为程序员完全了解 程序的行为,能够以最直接的方式来控制程序的运行。但实际上程序员往往是在为其他用户 写应用程序,而用户并不了解程序的内部行为,甚至对计算机技术也可能只是一知半解,因 此程序员必须为应用程序设计用户友好的(user friendly)界面,以便用户能很好地与应用程 序交互。所谓“用户友好”并没有严格的定义,大体指界面易学易记,用户能够高效率地与 计算机进行交互,交互过程中不易犯错,即使犯错也容易恢复。

在本章之前,我们写的程序都是所谓控制台程序,这种程序一般只提供命令行界面(Command Line Interface,简称 CLI),即用户通过键盘输入文本数据或文本命令来控制程序 的行为,而程序向用户显示的也都是文本信息。

与命令行界面不同,图形用户界面(Graphical User Interface,简称 GUI①)提供图形化 界面来实现程序与用户的交互。在 GUI 中,用户通过直接操作窗口、菜单、按钮等图形元素 来向程序发出命令或输入数据,而程序通过消息框、对话框等图形元素来向用户显示信息。 由于图形界面非常直观、易理解,所以 GUI 使得只具有一点基本计算机技能的用户也能顺利 地与计算机打交道。

作为例子,图 8.1 展示了读者已经熟悉的两种界面的 Python 解释器程序:命令行界面和 GUI(即 IDLE)。相信读者已经体会到 IDLE 在编辑源代码、运行和调试程序时的便利和高 效。

图 8.1 Python 解释器的两种用户界面

① GUI 可读作[gu:i]。

通过操作系统的演化史也可以清楚地了解两种界面的优劣。操作系统是计算机上最重要 的系统软件,用户通过操作系统提供的命令来使用计算机。早期的计算机都使用命令行界面 的操作系统,典型的如 DOS 和 UNIX。用过 DOS 的人都知道,为了让计算机做事情,需要 记忆很多 DOS 命令。例如为了将文件 myfile.txt 从 d:\拷贝到 d:\mydir 目录中,需要输入如下 命令:

C:\> copy d:\myfile.txt d:\mydir

为了让计算机更加易用,后来人们发明了图形界面的操作系统,典型的如 Microsoft Windows 和 X Window。在 Windows 中要想做上面这条 DOS 命令所做的事情,根本不需要键 盘,只需用鼠标点击几下进行复制粘贴,甚至直接拖动文件到新的文件夹即可。自从有了 Windows,今天的计算机用户可能都不知道曾经有 DOS 这样的东西了。

总之,GUI 能够大大增强程序的用户友好性,提高用户使用计算机的效率,因此是程序 设计中的重要技术。