<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  Linux應(yīng)用開發(fā)  (http://www.hufushizhe.com/bbs/list.asp?boardid=32)
    ----  Linux開發(fā)GUI應(yīng)用程序概述  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=32&id=1655)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-11-23 10:14:39
    --  Linux開發(fā)GUI應(yīng)用程序概述
    Linux歷史簡介
    1991年,芬蘭大學(xué)生Linus Torvalds編寫了一個小的操作系統(tǒng)內(nèi)核,這就是Linux的前身,Linus Torvalds也由此成為了Linux之父。Linus Torvalds將Linux系統(tǒng)的源代碼在Internet上公布,使Linux的發(fā)展受到了眾多計算機高手的鼎力相助,Linux從而不斷地增加新的 特性,不斷地提高穩(wěn)定性。現(xiàn)在,Linux已經(jīng)成為一個非常流行的操作系統(tǒng)。
    Linux是遵從GPL協(xié)議。也就是說,只要遵從GPL協(xié)議,就可以免費得到它的軟件和源代碼,并對它進行自由地修改。但對一般用戶來說,對Linux的源代碼進行編譯和安裝是難度很高的工作。
    所以,一些公司介入Linux的業(yè)務(wù),它們將Linux操作系統(tǒng)及一些重要的應(yīng)用程序打包,并提供較方便的安裝界面。這些公司所提供的產(chǎn)品一般稱為Linux的發(fā)布版本。
    目前比較著名的Linux發(fā)布版本有以下幾種:
    RedHat—最著名的Linux服務(wù)提供商。
    SlackWare—歷史比較悠久的發(fā)行版本。
    SUSE—在歐洲知名度較大。
    TurboLinux—在亞洲用戶較多。該公司漢化做得很出色。
    Debain—完全由Linux社區(qū)的計算機高手維護的發(fā)布版本。
    XteamLinux—北京沖浪平臺公司推出中國第一套漢化發(fā)布版本。
    BluePoint—內(nèi)核漢化技術(shù)比較引人注目。
    紅旗Linux—中科院軟件所和北大方正推出的發(fā)布版本。

    Linux的優(yōu)點
    Linux有眾多的優(yōu)點,下面列出主要的幾個:
    * Linux是一個多任務(wù)、多線程、多用戶的操作系統(tǒng)。
    * Linux性能穩(wěn)定,功能強大,可以與商用操作系統(tǒng)相提并論。
    * Linux可以適應(yīng)很多的平臺。它可以在Intel公司的x86計算機及其兼容機、Alpha計算機,以及蘋果等計算機上運行。 Linux還可以在許多嵌入式設(shè)備上運行。
    * Linux之上的應(yīng)用程序正在逐漸增多。大多數(shù)為UNIX開發(fā)的應(yīng)用程序都能在Linux上運行。
    Linux還可以在仿真軟件的幫助下運行許多DOS應(yīng)用程序和Windows應(yīng)用程序。
    * 公開源代碼是Linux最大的優(yōu)越性,只要遵從GPL協(xié)議,就可以自由地對Linux進行修改和剪裁,以適應(yīng)個人需要。

    Linux的桌面環(huán)境
    Linux有一套簡便易學(xué)的圖形用戶接口(GUI),用戶使用鼠標就可以完成大多數(shù)工作。在Linux中,GUI由窗口系統(tǒng),窗口管理器,工具包和風(fēng)格 等幾個部分組成。窗口系統(tǒng)用于組織顯示屏上的圖形輸出,窗口管理器用于對窗口的操作如最小化等,工具包是用于編程界面的庫,風(fēng)格是應(yīng)用程序的用戶界面。
    現(xiàn)在,Linux下的桌面環(huán)境主要包括KDE和Gnome兩種。
    KDE(K Desktop Environment)桌面環(huán)境目的是提供一個開放源代碼的圖形用戶接口和開發(fā)環(huán)境。
    KDE一度成為許多Linux發(fā)布版本的首選桌面環(huán)境。但是,KDE是基于QT庫的。Qt最初并不遵從GPL協(xié)議。所以,將KDE建立在QT之上是一件危險的事,它將依賴于開發(fā)QT庫的公司。
    所以,后來的Linux發(fā)行版本中加入了Gnome主面環(huán)境。Gnome是GNU Network Object Model Environment(GNU,網(wǎng)絡(luò)對象模型環(huán)境)的縮寫。Gnome的發(fā)展很快,已成為一個強勁的GUI應(yīng)用程序開發(fā)框架,可以在任何一種UNIX系 統(tǒng)下運行。
    Gnome使用的圖形庫是Gtk+構(gòu)件庫,它是基于LGPL協(xié)議的。Gnome的界面與KDE的界面類似,熟悉KDE的用戶無需學(xué)習(xí)就能夠使用Gnome。所以,Gnome現(xiàn)在已經(jīng)成為大多數(shù)Linux發(fā)布版本的首選桌面環(huán)境。
    Gnome是一個集成桌面環(huán)境,也是一個應(yīng)用程序開發(fā)框架,由很多的函數(shù)庫組成。即使用戶不運行Gnome桌面環(huán)境,用Gnome編寫的應(yīng)用程序也可運 行,但是這些應(yīng)用程序是可以很好地和Gnome桌面環(huán)境集成的。Gnome的開發(fā)結(jié)構(gòu)使我們可以開發(fā)一致和易用的應(yīng)用程序。

    開發(fā)所使用的庫
    Gtk+(GIMP ToolKit,GIMP工具包) Gtk+最初用于開發(fā)GIMP,是一個用于創(chuàng)造圖形用戶接口的圖形庫。Gtk+是基于LGPL授權(quán)的,因此可以用Gtk+開發(fā)開放源碼軟件的自由軟件或商業(yè)的非自由的軟件。
    Gtk+是在Gdk(GIMP Drawing Kit,GIMP繪圖包)的基礎(chǔ)上創(chuàng)建的。Gdk是對Xlib函數(shù)的包裝。我們一般用GTK代表軟件包和共享庫,用Gtk+代表GTK的圖形構(gòu)件集。
    Gtk+圖形庫使用一些稱為“構(gòu)件”的對象來創(chuàng)建GUI應(yīng)用程序。它提供了窗口、按鈕、框架、列表框、組合框、樹、狀態(tài)條等很多構(gòu)件,可以構(gòu)造豐富的用戶界面。
    在Gtk+圖形庫構(gòu)件基礎(chǔ)上,又開發(fā)了一些新構(gòu)件,這些構(gòu)件都是Gtk+構(gòu)件庫的補充,它們提供了許多Gtk+構(gòu)件沒有的功能。一般把這些構(gòu)件稱為Gnome構(gòu)件。使用Gnome構(gòu)件可以使開發(fā)界面一致的應(yīng)用程序變得更加容易。
    Gnome的應(yīng)用程序開發(fā)結(jié)構(gòu)核心是一套庫,是由C語言編寫的,對很多語言都提供了GnomeAPI接口,包括Ada、Scheme、Python、Perl、Tom、Eiffel、Dylan等。
    Gnome的開發(fā)架構(gòu)包含以下一些內(nèi)容:

    1. 非Gnome庫
    Gnome繼承了自由軟件一些函數(shù)庫。其中一些庫Gnome應(yīng)用程序開發(fā)架構(gòu)的一部分,但是不屬于Gnome庫。可以在Gnome環(huán)境中使用這些庫函數(shù)。主要有以下幾種:
    Glib庫 —Glib是Gnome的基礎(chǔ),它是一個C工具庫,提供了創(chuàng)建和操作常用數(shù)據(jù)結(jié)構(gòu)的實用函數(shù)。
    Gtk+庫—Gtk+(GIMPToolkit的縮寫),是在Gnome應(yīng)用程序中使用的GUI工具包。Gnome在基本Gtk+構(gòu)件集合的基礎(chǔ)上添加了許多其他構(gòu)件。
    ORBit庫—ORBit是一個用C開發(fā)的CORBA2.2ORB。和其他ORB相比,它短小精悍,但速度更快,同時還支持C語言映射。ORBit是以一整套庫函數(shù)的方式實現(xiàn)的。
    Imlib庫 Imlib(圖片庫)提供一些例程,其中包括加載、存儲、顯示,以及定繪制各種流行的圖像格式(包括GIF、JPEG、PNG以及TIFF)的函數(shù)。

    2. Gnome庫
    Libgnome庫—Libgnome是一些與圖形用戶接口無關(guān)的函數(shù)集合,Gnome應(yīng)用程序可以調(diào)用其中的函數(shù)。
    Libgnomeui庫—Libgnomeui包含了與GUI相關(guān)的Gnome代碼。它由為增強和擴展Gtk+功能而設(shè)計的構(gòu)件組成。libgnomeui主要包含:
    (1)GnomeApp構(gòu)件一般用來為應(yīng)用程序創(chuàng)建主窗口。
    (2)GnomeCanvas構(gòu)件用來編寫定制構(gòu)件。
    (3)Gnome內(nèi)置的pixmap用于創(chuàng)建和使用對話框的例程。
    Libgnomeui中還有幾種其他構(gòu)件,如GnomeEntry、GnomeFilePicker等。
    Libgnorba庫—libgnorba提供與CORBA相關(guān)的實用程序。

    3.其他庫
    這些庫一般使用在Gnome應(yīng)用程序中,但它不屬于Gnome-libs:
    Gnome-print庫—Gnome-print提供一個虛擬輸出設(shè)備,一段代碼能輸出到一個打印預(yù)覽構(gòu)件或PostScript文件,還可以輸出到其他打印機格式。
    Gnome-xml庫—Gnome-xml能按照樹狀結(jié)構(gòu)分析XML,也能按照XML輸出樹狀結(jié)構(gòu)。
    Guile庫 Guile是Scheme編程語言在一個庫中的實現(xiàn),它使任何應(yīng)用程序都能帶有一個嵌入式的Sheme解釋器。
    Bonobo庫—Bonobo是一種對象嵌入式結(jié)構(gòu),類似于Microsoft的OLE。

    編程語言和編程工具
    在Linux下的常用開發(fā)語言是C語言,Linux上的很多應(yīng)用程序就是用C語言寫的。當然,也可以使用其他語言。因為Gtk+和Gnome是用C語言編寫的,所以在開發(fā)Linux下的GUI程序時使用C語言是非常方便的。Gtk+也提供與許多其他語言的接口。
    一般的Linux發(fā)布版本中都提供了C編譯器gcc或egcs。使用gcc或egcs可以編譯C和C++源代碼。各種C編譯器都要使用一些C語言實用函 數(shù)。為了保證程序的可移植性,gcc沒有使用通用的C函數(shù)庫,而是使用一種稱為glib的函數(shù)庫。glib也是Gtk+的基礎(chǔ)。它包含一些標準函數(shù)的替代 函數(shù)和基本數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)。
    還有許多使用工具可以提高Linux下的編程效率,如gdb是優(yōu)秀的C語言調(diào)試器,有非常豐富的調(diào)試指令。automake和autoconf用于由源代碼結(jié)構(gòu)配置編譯選項,生成編譯所需的Makefile文件。
    在Linux下開發(fā)GUI應(yīng)用程序,像Windows平臺上的可視化快速應(yīng)用程序開發(fā)工具還很少。有幾種正在開發(fā)的RAD(Rapid Application Development)工具,比如我們以后將要介紹的Glade—一種GUI生成器,可以快速生成創(chuàng)建界面的C源程序

    主站蜘蛛池模板: 精品久久人人妻人人做精品| 中文字幕精品在线| 狠狠躁夜夜人人爽天96| 国产无套粉嫩白浆在线| 一本伊大人香蕉在线观看| 日本精品久久久久中文字幕| 亚洲第一精品电影网| 精品人无码一区二区三区| 国产欧美va欧美va香蕉在| ririai66在线观看视频| 我两腿被同学摸的直流水| 亚洲人成伊人成综合网久久| 波多野结衣一区在线| 四虎永久精品免费网址大全| 高清永久免费观看| 国产鲁鲁视频在线播放| 中文字幕123区| 日本不卡高字幕在线2019| 亚洲国产精品一区二区成人片国内| 波多野结衣在线观看免费区| 国产a不卡片精品免费观看| 高清国产一级毛片国语| 国产色婷婷精品综合在线| 两夫妇交换的一天| 日日橹狠狠爱欧美超碰| 亚洲人成77777在线观看网| 欧美精品久久久久久久影视| 再一深点灬舒服灬太大了视频| 色欲久久久天天天综合网精品 | 亚洲黄色网址大全| 精品久久久久久中文字幕| 国产亚洲高清不卡在线观看| 麻豆色哟哟网站| 国产精品福利午夜在线观看| www视频免费看| 完全免费在线视频| 久久久久久一区国产精品| 日本漂亮人妖megumi| 亚洲人成网站在线观看播放青青 | 樱花www视频| 亚洲精品无码人妻无码|