GUI
1.什么是GUI
GUI是指采用圖形方式顯示的計(jì)算機(jī)操作用戶(hù)界面。
2.GUI的發(fā)展歷史[1]
1.萌芽階段
最早的視窗系統(tǒng)概念是隨著第一個(gè)計(jì)算機(jī)實(shí)時(shí)圖形顯示系統(tǒng)的出現(xiàn)而提出的,即SAGEProject(美國(guó)空軍防空系統(tǒng))和IvanSutherland編寫(xiě)的Sketehpad(Sketehpad被公認(rèn)為是計(jì)算機(jī)輔助繪圖(CAD)程序的創(chuàng)始者,并對(duì)現(xiàn)代計(jì)算機(jī)圖形用戶(hù)界面的發(fā)展產(chǎn)生重大影響)。
Sketchpad當(dāng)時(shí)在麻州理工學(xué)院的林肯TX.2計(jì)算機(jī)上運(yùn)行。它使用了一個(gè)xIy點(diǎn)圖像顯示器和當(dāng)時(shí)剛發(fā)明的光筆。
1960年DougEngelbart在SRI(StenfordResearchInstitute)發(fā)展了OLS在線(xiàn)系統(tǒng),在軟件界面中增加了光標(biāo)和多窗口。
1970年,SRI的部分研究員進(jìn)入施樂(lè)PARC(PaloAltoResearchCenter帕洛阿爾托研究中心),并完成了第一個(gè)WIMP(窗戶(hù),圖標(biāo),菜單和指針廠(chǎng)F拉式菜單)的演示。
1973年,第一臺(tái)使用Alto操作系統(tǒng)的計(jì)算機(jī)在施樂(lè)公司PARC研究中心開(kāi)發(fā)完成。Alto是第一個(gè)具備了所有現(xiàn)代圖形用戶(hù)界面的基本元素特征的操作系統(tǒng)。特點(diǎn):使用三鍵的鼠標(biāo);位圖的顯示器;圖形窗口的運(yùn)用。
2.發(fā)展階段
1980年,ThreeRivers電腦公司發(fā)布Perq圖形工作站。
1981年,施樂(lè)公司發(fā)布施樂(lè)8010(Star)作為Alto的替代產(chǎn)品。特點(diǎn):可雙擊的圖標(biāo),可重疊的窗口,對(duì)話(huà)欄,分辨率達(dá)到1024*768的單色顯示器。
1983年,蘋(píng)果公司發(fā)布Lisa。特點(diǎn):下拉菜單和主菜單條。Visi公司發(fā)布Vision,這是第一款使用完整的圖形界面并針對(duì)mM個(gè)人電腦環(huán)境的電子圖表軟件。圖形用戶(hù)界面最初的實(shí)際運(yùn)用是Vision公司用來(lái)設(shè)計(jì)電子表格。首先將“視窗”和鼠標(biāo)的概念引入個(gè)人電腦,這比微軟的第一版Windows還早。
1984年,蘋(píng)果公司發(fā)布Macintosh系列計(jì)算機(jī)Macintosh是第一個(gè)成功運(yùn)用圖形用戶(hù)界面的商業(yè)產(chǎn)品。虛擬的桌面概念開(kāi)始使用,文件看起來(lái)就象一張紙,目錄看起來(lái)像文件夾一樣:還有一組桌面小工具,如計(jì)算機(jī)、筆記本和時(shí)鐘等。所有這些東西用戶(hù)都可按自己的需要在屏幕上隨意放置,也可以通過(guò)把文件和文件夾拖入屏幕上的廢紙簍來(lái)刪除文件。
1985年,Ge0s在蘋(píng)果公司的ApplelI之后發(fā)布Commodore64系統(tǒng)。微軟發(fā)布視察操作系統(tǒng)Windows的第一個(gè)版本。
1987年,蘋(píng)果發(fā)布MacintoshII型電腦,這是Macintosh的第一款彩色顯示機(jī)型。特點(diǎn):顯示達(dá)到640*480的分辨率,256色。微軟發(fā)布Windows的第二個(gè)版本,特點(diǎn):窗口具有了可疊加、可改變大小的新功能。Acorn公司發(fā)布為Acorn計(jì)算機(jī)開(kāi)發(fā)的“Arthur”圖形界面操作系統(tǒng)。
1988年,蘋(píng)果發(fā)布為AppleIIGS開(kāi)發(fā)的16位操作系統(tǒng)GS/OS,其圖形界面與蘋(píng)果的Macintosh系列十分類(lèi)似。IBM發(fā)布增加了圖形用戶(hù)界面的OS/21.10標(biāo)準(zhǔn)版(OS/21.0還完全是命令行模式)。這個(gè)版本的圖形用戶(hù)界面是由微軟編寫(xiě)的,所以整個(gè)界面看起來(lái)和Windows2很像。
1990年,Commodore發(fā)布A3000機(jī)型使用的AmigaWorkbench2,特點(diǎn):增加了三維的凹凸效果,增加了系統(tǒng)菜單。微軟發(fā)布Windows3.0。GeoWorks發(fā)布PC-GEOS。
1992年,IBM發(fā)布32_bit真彩的操作系統(tǒng)OS/2Version2.0。微軟發(fā)布Windows3.1。AGAAmigas計(jì)算機(jī)的AmigaWorkbench3系統(tǒng)發(fā)布
1993年,微軟發(fā)布WindowsNT的第一個(gè)版本,這是微軟全新的32位操作系統(tǒng),它采用了和Windows3.1一樣的版本號(hào)和圖形用戶(hù)界面。
1994年,QNXSoftwareSystems發(fā)布第一個(gè)嵌入式微窗口系統(tǒng)PhtotnmicmGUI,資源管理器窗口就是嵌入式多窗口技術(shù)的典型運(yùn)用。
1995年,微軟發(fā)布Windows95。Agenda96發(fā)布。
1996年,NewDealOffice2.5發(fā)布,它的前身是PC.GEOS。IBM發(fā)布OS/2Warp4。微軟發(fā)布與Windows95界面完全一樣的WindowsNT4.0。
1997年,蘋(píng)果MacOS8發(fā)布,并在短短兩周內(nèi)賣(mài)出了一百二十五萬(wàn)份,成為當(dāng)時(shí)最暢銷(xiāo)的軟件。
1998年,微軟發(fā)布Windows98。特點(diǎn):InteractExplorer網(wǎng)絡(luò)器取代了傳統(tǒng)的窗口形式,整個(gè)幫助系統(tǒng)也由IntemetExplorer所取代,廣告放置在桌面右上角。
1999年,蘋(píng)果發(fā)布MacOSXServer,這是一款基于Unix的操作系統(tǒng),沿用了蘋(píng)果Macintosh的圖形用戶(hù)界面。RISCOS公司發(fā)布適合RiscPC、A7000、A7000+計(jì)算機(jī)的RISCOS4操作系統(tǒng)。
2000年,蘋(píng)果公司公布發(fā)布MacOSX,采用全新水晶圖形界面。微軟Windows2000(AKAWindowsNT5)正式發(fā)售。
2001年,微軟發(fā)布WindowsXP。微軟下一代操作系統(tǒng)對(duì)用戶(hù)界面設(shè)計(jì)進(jìn)行了巨大投入,“期望通過(guò)它改變?nèi)藗兪褂糜?jì)算機(jī)的方式”。
在計(jì)算機(jī)出現(xiàn)半個(gè)世紀(jì)的時(shí)間里,圖形界面經(jīng)過(guò)不斷完善,逐步成熟,并完全取代了命令語(yǔ)言界面,成為現(xiàn)代軟件界面的主導(dǎo)形式。圖形用戶(hù)界面是人類(lèi)歷史上最偉大的發(fā)明創(chuàng)造之一,它對(duì)計(jì)算機(jī)的普及與進(jìn)一步發(fā)展具有深遠(yuǎn)的意義。施樂(lè)、蘋(píng)果、微軟等公司在這個(gè)過(guò)程中發(fā)揮了重要作用。
3.GUI特征[2]
一般而言,在屏幕上GUI表示信息的矩形區(qū)域稱(chēng)為窗口。窗口相互問(wèn)可以重疊。用戶(hù)可以在窗口上執(zhí)行多種操作,如改變大小和位置。窗口可以包含對(duì)象,每個(gè)對(duì)象的圖形表示稱(chēng)為圖苻。整個(gè)窗口可以縮小為一個(gè)圖標(biāo).用戶(hù)也可以將圖符恢復(fù)成窗口。
高級(jí)的GUI幾乎完全取消了鍵人命令的需求,用戶(hù)只需使用鼠標(biāo)和功能鍵進(jìn)行選擇就可以了。窗口還可以包含其他圖形實(shí)體(如滾動(dòng)條、滑動(dòng)軒和按鈕)以便用戶(hù)控制窗口的內(nèi)容,給應(yīng)用系統(tǒng)提供額外輸入。
和傳統(tǒng)的程序設(shè)計(jì)相比,表示邏輯的最大差別是表示總使用戶(hù)處于邏輯控制之中。因此傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)所包括的輸入、輸出部分和處理部分要進(jìn)行修改。GUI程序設(shè)計(jì)必須能隨時(shí)接受和處理用戶(hù)或系統(tǒng)的異步事件。
1.事件類(lèi)型
用戶(hù)生成的輸人事件和系統(tǒng)生成的事件隨GUI實(shí)現(xiàn)的不同而有很大差異共同的事件類(lèi)型有:
(1)鼠標(biāo)事件:用戶(hù)將鼠標(biāo)移進(jìn)或移出一個(gè)實(shí)體、在實(shí)體內(nèi)外按鍵,釋放一個(gè)鍵。
(2)鍵盤(pán)事件:用戶(hù)按下或釋放一個(gè)鍵
(3)菜單事件:用戶(hù)從菜單中選擇一個(gè)命令。
(4)窗口更改事件:應(yīng)用系統(tǒng)窗口的某個(gè)部分被重疊時(shí)必須重畫(huà)。
(5)窗口大小的更改:用戶(hù)更改窗口的大小。
(6)澈活、掛起事件:由GUI生成以便用戶(hù)改變當(dāng)前活動(dòng)的窗口。
(7)啟動(dòng)、終止事件:創(chuàng)建、消滅GUI實(shí)體以便應(yīng)用系統(tǒng)能進(jìn)行必要的創(chuàng)建、刪除邏輯。
2.事件分布
這些事件必須由表示邏輯和應(yīng)用邏輯來(lái)協(xié)同處理,將必要的處理分布到了GUI、應(yīng)用邏輯以及特定的GUI應(yīng)用程序設(shè)計(jì)接口(API)之中。一般而言,API是特定的GUI庫(kù)例程執(zhí)行下列功能:創(chuàng)建窗口和顯示各種圖形。因而有下列幾種事件分布處理模型:
(1)事件循環(huán)模型:這種模型而言,應(yīng)用子系統(tǒng)必須包括一個(gè)事件循環(huán),由事件循環(huán)調(diào)用一個(gè)特定的庫(kù)倒程檢查是否有事件發(fā)生。每個(gè)產(chǎn)生的事件引起應(yīng)用系統(tǒng)在控制返回給事件循環(huán)之前發(fā)出一個(gè)事件處理例程。為了使用戶(hù)感到總是在控制之中,應(yīng)用系統(tǒng)必須迅速返回事件控制甚至在事件處理還沒(méi)有完成的情況下就返回。
(2)事件回調(diào)模型:這模型需要應(yīng)用系統(tǒng)為每個(gè)GUI創(chuàng)建的實(shí)體注冊(cè)一個(gè)事件處理函數(shù)因而就從前面重要的事件循環(huán)中釋放了應(yīng)用系統(tǒng)。在GUI檢查到實(shí)體的一個(gè)事件時(shí)(如菜單命令或擊鍵),它就調(diào)用合適的應(yīng)用系統(tǒng)事件例程應(yīng)用系統(tǒng)僅在實(shí)體初始化或調(diào)用其事件處理例程時(shí)取得控制。
(3)混合模型:這個(gè)模型將事件循環(huán)模型和事件回調(diào)模型組合了起來(lái)。MicrosoWindows就利用了一個(gè)混合模型(其中應(yīng)用系統(tǒng)必須包含一個(gè)事件循環(huán))來(lái)調(diào)用例程取得下一個(gè)事件一個(gè)應(yīng)用系統(tǒng)也可以調(diào)用另一個(gè)API例程,API例程反過(guò)來(lái)可調(diào)用系統(tǒng)的事件處理器。
3.GUI輸出特征
GUI的輸出特征隨GUI的不同而有很大差異:
(1)坐標(biāo)空間描述了兩維坐標(biāo)系統(tǒng)以便GUI通過(guò)定義圖空間的開(kāi)始點(diǎn)和分辨率來(lái)確定屏幕上單個(gè)象素的位置。大多數(shù)GUI將開(kāi)始點(diǎn)放在顯示器的左上角.而坐標(biāo)向右向下增加,在某些接口中,如OS/2的PresdntationManager,開(kāi)始點(diǎn)放在左下角,而坐標(biāo)向右向上增加。不同GUI的坐標(biāo)系統(tǒng)在分辨率上也有差異,分辨率以每英寸點(diǎn)的個(gè)數(shù)來(lái)度量(DPI),一般有75DPI100DPI等。對(duì)字符終端而言,點(diǎn)就是一個(gè)字符。應(yīng)用系統(tǒng)必須要考慮到坐標(biāo)空間和分辨率,這樣才能在屏幕上畫(huà)出正確的圖形。
(2)畫(huà)圖算法描述了特定GuI畫(huà)線(xiàn),中心線(xiàn)以及聯(lián)接線(xiàn)的方式。差4有時(shí)是比較顯著的。例如兩個(gè)點(diǎn)間的三個(gè)象素寬的一條線(xiàn),既可以以端點(diǎn)為中心,也可以在端點(diǎn)上或端點(diǎn)下。當(dāng)然,在低分辨的平臺(tái)上,線(xiàn)看起來(lái)都一樣-但在高分辨率的顯示器上.線(xiàn)就可能中斷或重疊。
(3)色彩影響著GUI畫(huà)的圖的觀感。各種顯示設(shè)備的色彩有很大差異。GUI本身對(duì)色彩的處理也不同,而且使用不同數(shù)目的位來(lái)表示色彩,這樣就決定了色彩的精確程序。
(4)文本表示在圖形方式下和字符方式下有很大差異在GUI環(huán)境中,文本以圖形方式來(lái)處理,而且有很大的選擇范圍。這些參數(shù)包括色彩、字符大小、字體和風(fēng)格。