GUI
1.什么是GUI
GUI是指采用图形方式显示的计算机操作用户界面。
2.GUI的发展历史[1]
1.萌芽阶段
最早的视窗系统概念是随着第一个计算机实时图形显示系统的出现而提出的,即SAGEProject(美国空军防空系统)和IvanSutherland编写的Sketehpad(Sketehpad被公认为是计算机辅助绘图(CAD)程序的创始者,并对现代计算机图形用户界面的发展产生重大影响)。
Sketchpad当时在麻州理工学院的林肯TX.2计算机上运行。它使用了一个xIy点图像显示器和当时刚发明的光笔。
1960年DougEngelbart在SRI(StenfordResearchInstitute)发展了OLS在线系统,在软件界面中增加了光标和多窗口。
1970年,SRI的部分研究员进入施乐PARC(PaloAltoResearchCenter帕洛阿尔托研究中心),并完成了第一个WIMP(窗户,图标,菜单和指针厂F拉式菜单)的演示。
1973年,第一台使用Alto操作系统的计算机在施乐公司PARC研究中心开发完成。Alto是第一个具备了所有现代图形用户界面的基本元素特征的操作系统。特点:使用三键的鼠标;位图的显示器;图形窗口的运用。
2.发展阶段
1980年,ThreeRivers电脑公司发布Perq图形工作站。
1981年,施乐公司发布施乐8010(Star)作为Alto的替代产品。特点:可双击的图标,可重叠的窗口,对话栏,分辨率达到1024*768的单色显示器。
1983年,苹果公司发布Lisa。特点:下拉菜单和主菜单条。Visi公司发布Vision,这是第一款使用完整的图形界面并针对mM个人电脑环境的电子图表软件。图形用户界面最初的实际运用是Vision公司用来设计电子表格。首先将“视窗”和鼠标的概念引入个人电脑,这比微软的第一版Windows还早。
1984年,苹果公司发布Macintosh系列计算机Macintosh是第一个成功运用图形用户界面的商业产品。虚拟的桌面概念开始使用,文件看起来就象一张纸,目录看起来像文件夹一样:还有一组桌面小工具,如计算机、笔记本和时钟等。所有这些东西用户都可按自己的需要在屏幕上随意放置,也可以通过把文件和文件夹拖入屏幕上的废纸篓来删除文件。
1985年,Ge0s在苹果公司的ApplelI之后发布Commodore64系统。微软发布视察操作系统Windows的第一个版本。
1987年,苹果发布MacintoshII型电脑,这是Macintosh的第一款彩色显示机型。特点:显示达到640*480的分辨率,256色。微软发布Windows的第二个版本,特点:窗口具有了可叠加、可改变大小的新功能。Acorn公司发布为Acorn计算机开发的“Arthur”图形界面操作系统。
1988年,苹果发布为AppleIIGS开发的16位操作系统GS/OS,其图形界面与苹果的Macintosh系列十分类似。IBM发布增加了图形用户界面的OS/21.10标准版(OS/21.0还完全是命令行模式)。这个版本的图形用户界面是由微软编写的,所以整个界面看起来和Windows2很像。
1990年,Commodore发布A3000机型使用的AmigaWorkbench2,特点:增加了三维的凹凸效果,增加了系统菜单。微软发布Windows3.0。GeoWorks发布PC-GEOS。
1992年,IBM发布32_bit真彩的操作系统OS/2Version2.0。微软发布Windows3.1。AGAAmigas计算机的AmigaWorkbench3系统发布
1993年,微软发布WindowsNT的第一个版本,这是微软全新的32位操作系统,它采用了和Windows3.1一样的版本号和图形用户界面。
1994年,QNXSoftwareSystems发布第一个嵌入式微窗口系统PhtotnmicmGUI,资源管理器窗口就是嵌入式多窗口技术的典型运用。
1995年,微软发布Windows95。Agenda96发布。
1996年,NewDealOffice2.5发布,它的前身是PC.GEOS。IBM发布OS/2Warp4。微软发布与Windows95界面完全一样的WindowsNT4.0。
1997年,苹果MacOS8发布,并在短短两周内卖出了一百二十五万份,成为当时最畅销的软件。
1998年,微软发布Windows98。特点:InteractExplorer网络器取代了传统的窗口形式,整个帮助系统也由IntemetExplorer所取代,广告放置在桌面右上角。
1999年,苹果发布MacOSXServer,这是一款基于Unix的操作系统,沿用了苹果Macintosh的图形用户界面。RISCOS公司发布适合RiscPC、A7000、A7000+计算机的RISCOS4操作系统。
2000年,苹果公司公布发布MacOSX,采用全新水晶图形界面。微软Windows2000(AKAWindowsNT5)正式发售。
2001年,微软发布WindowsXP。微软下一代操作系统对用户界面设计进行了巨大投入,“期望通过它改变人们使用计算机的方式”。
在计算机出现半个世纪的时间里,图形界面经过不断完善,逐步成熟,并完全取代了命令语言界面,成为现代软件界面的主导形式。图形用户界面是人类历史上最伟大的发明创造之一,它对计算机的普及与进一步发展具有深远的意义。施乐、苹果、微软等公司在这个过程中发挥了重要作用。
3.GUI特征[2]
一般而言,在屏幕上GUI表示信息的矩形区域称为窗口。窗口相互问可以重叠。用户可以在窗口上执行多种操作,如改变大小和位置。窗口可以包含对象,每个对象的图形表示称为图苻。整个窗口可以缩小为一个图标.用户也可以将图符恢复成窗口。
高级的GUI几乎完全取消了键人命令的需求,用户只需使用鼠标和功能键进行选择就可以了。窗口还可以包含其他图形实体(如滚动条、滑动轩和按钮)以便用户控制窗口的内容,给应用系统提供额外输入。
和传统的程序设计相比,表示逻辑的最大差别是表示总使用户处于逻辑控制之中。因此传统的结构化程序设计所包括的输入、输出部分和处理部分要进行修改。GUI程序设计必须能随时接受和处理用户或系统的异步事件。
1.事件类型
用户生成的输人事件和系统生成的事件随GUI实现的不同而有很大差异共同的事件类型有:
(1)鼠标事件:用户将鼠标移进或移出一个实体、在实体内外按键,释放一个键。
(2)键盘事件:用户按下或释放一个键
(3)菜单事件:用户从菜单中选择一个命令。
(4)窗口更改事件:应用系统窗口的某个部分被重叠时必须重画。
(5)窗口大小的更改:用户更改窗口的大小。
(6)澈活、挂起事件:由GUI生成以便用户改变当前活动的窗口。
(7)启动、终止事件:创建、消灭GUI实体以便应用系统能进行必要的创建、删除逻辑。
2.事件分布
这些事件必须由表示逻辑和应用逻辑来协同处理,将必要的处理分布到了GUI、应用逻辑以及特定的GUI应用程序设计接口(API)之中。一般而言,API是特定的GUI库例程执行下列功能:创建窗口和显示各种图形。因而有下列几种事件分布处理模型:
(1)事件循环模型:这种模型而言,应用子系统必须包括一个事件循环,由事件循环调用一个特定的库倒程检查是否有事件发生。每个产生的事件引起应用系统在控制返回给事件循环之前发出一个事件处理例程。为了使用户感到总是在控制之中,应用系统必须迅速返回事件控制甚至在事件处理还没有完成的情况下就返回。
(2)事件回调模型:这模型需要应用系统为每个GUI创建的实体注册一个事件处理函数因而就从前面重要的事件循环中释放了应用系统。在GUI检查到实体的一个事件时(如菜单命令或击键),它就调用合适的应用系统事件例程应用系统仅在实体初始化或调用其事件处理例程时取得控制。
(3)混合模型:这个模型将事件循环模型和事件回调模型组合了起来。MicrosoWindows就利用了一个混合模型(其中应用系统必须包含一个事件循环)来调用例程取得下一个事件一个应用系统也可以调用另一个API例程,API例程反过来可调用系统的事件处理器。
3.GUI输出特征
GUI的输出特征随GUI的不同而有很大差异:
(1)坐标空间描述了两维坐标系统以便GUI通过定义图空间的开始点和分辨率来确定屏幕上单个象素的位置。大多数GUI将开始点放在显示器的左上角.而坐标向右向下增加,在某些接口中,如OS/2的PresdntationManager,开始点放在左下角,而坐标向右向上增加。不同GUI的坐标系统在分辨率上也有差异,分辨率以每英寸点的个数来度量(DPI),一般有75DPI100DPI等。对字符终端而言,点就是一个字符。应用系统必须要考虑到坐标空间和分辨率,这样才能在屏幕上画出正确的图形。
(2)画图算法描述了特定GuI画线,中心线以及联接线的方式。差4有时是比较显著的。例如两个点间的三个象素宽的一条线,既可以以端点为中心,也可以在端点上或端点下。当然,在低分辨的平台上,线看起来都一样-但在高分辨率的显示器上.线就可能中断或重叠。
(3)色彩影响着GUI画的图的观感。各种显示设备的色彩有很大差异。GUI本身对色彩的处理也不同,而且使用不同数目的位来表示色彩,这样就决定了色彩的精确程序。
(4)文本表示在图形方式下和字符方式下有很大差异在GUI环境中,文本以图形方式来处理,而且有很大的选择范围。这些参数包括色彩、字符大小、字体和风格。