歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux開發GUI應用程序概述

Linux開發GUI應用程序概述

日期:2017/2/27 14:23:13   编辑:更多Linux
  Linux歷史簡介   1991年,芬蘭大學生Linus Torvalds編寫了一個小的操作系統內核,這就是Linux的前身,Linus Torvalds也由此成為了Linux之父。Linus Torvalds將Linux系統的源代碼在Internet上公布,使Linux的發展受到了眾多計算機高手的鼎力相助,Linux從而不斷地增加新的特性,不斷地提高穩定性。現在,Linux已經成為一個非常流行的操作系統。   Linux是遵從GPL協議。也就是說,只要遵從GPL協議,就可以免費得到它的軟件和源代碼,並對它進行自由地修改。但對一般用戶來說,對Linux的源代碼進行編譯和安裝是難度很高的工作。   所以,一些公司介入Linux的業務,它們將Linux操作系統及一些重要的應用程序打包,並提供較方便的安裝界面。這些公司所提供的產品一般稱為Linux的發布版本。  目前比較著名的Linux發布版本有以下幾種:   RedHat—最著名的Linux服務提供商。   SlackWare—歷史比較悠久的發行版本。   SUSE—在歐洲知名度較大。   TurboLinux—在亞洲用戶較多。該公司漢化做得很出色。   Debain—完全由Linux社區的計算機高手維護的發布版本。   XteamLinux—北京沖浪平台公司推出中國第一套漢化發布版本。   BluePoint—內核漢化技術比較引人注目。   紅旗Linux—中科院軟件所和北大方正推出的發布版本。     Linux的優點   Linux有眾多的優點,下面列出主要的幾個:   * Linux是一個多任務、多線程、多用戶的操作系統。   * Linux性能穩定,功能強大,可以與商用操作系統相提並論。   * Linux可以適應很多的平台。它可以在Intel公司的x86計算機及其兼容機、Alpha計算機,以及蘋果等計算機上運行。 Linux還可以在許多嵌入式設備上運行。   * Linux之上的應用程序正在逐漸增多。大多數為UNIX開發的應用程序都能在Linux上運行。   Linux還可以在仿真軟件的幫助下運行許多DOS應用程序和Windows應用程序。   * 公開源代碼是Linux最大的優越性,只要遵從GPL協議,就可以自由地對Linux進行修改和剪裁,以適應個人需要。     Linux的桌面環境   Linux有一套簡便易學的圖形用戶接口(GUI),用戶使用鼠標就可以完成大多數工作。在Linux中,GUI由窗口系統,窗口管理器,工具包和風格等幾個部分組成。窗口系統用於組織顯示屏上的圖形輸出,窗口管理器用於對窗口的操作如最小化等,工具包是用於編程界面的庫,風格是應用程序的用戶界面。   現在,Linux下的桌面環境主要包括KDE和Gnome兩種。   KDE(K Desktop Environment)桌面環境目的是提供一個開放源代碼的圖形用戶接口和開發環境。   KDE一度成為許多Linux發布版本的首選桌面環境。但是,KDE是基於QT庫的。Qt最初並不遵從GPL協議。所以,將KDE建立在QT之上是一件危險的事,它將依賴於開發QT庫的公司。   所以,後來的Linux發行版本中加入了Gnome主面環境。Gnome是GNU Network Object Model Environment(GNU,網絡對象模型環境)的縮寫。Gnome的發展很快,已成為一個強勁的GUI應用程序開發框架,可以在任何一種UNIX系統下運行。   Gnome使用的圖形庫是Gtk+構件庫,它是基於LGPL協議的。Gnome的界面與KDE的界面類似,熟悉KDE的用戶無需學習就能夠使用Gnome。所以,Gnome現在已經成為大多數Linux發布版本的首選桌面環境。   Gnome是一個集成桌面環境,也是一個應用程序開發框架,由很多的函數庫組成。即使用戶不運行Gnome桌面環境,用Gnome編寫的應用程序也可運行,但是這些應用程序是可以很好地和Gnome桌面環境集成的。Gnome的開發結構使我們可以開發一致和易用的應用程序。     開發所使用的庫   Gtk+(GIMP ToolKit,GIMP工具包) Gtk+最初用於開發GIMP,是一個用於創造圖形用戶接口的圖形庫。Gtk+是基於LGPL授權的,因此可以用Gtk+開發開放源碼軟件的自由軟件或商業的非自由的軟件。   Gtk+是在Gdk(GIMP Drawing Kit,GIMP繪圖包)的基礎上創建的。Gdk是對Xlib函數的包裝。我們一般用GTK代表軟件包和共享庫,用Gtk+代表GTK的圖形構件集。   Gtk+圖形庫使用一些稱為“構件”的對象來創建GUI應用程序。它提供了窗口、按鈕、框架、列表框、組合框、樹、狀態條等很多構件,可以構造豐富的用戶界面。   在Gtk+圖形庫構件基礎上,又開發了一些新構件,這些構件都是Gtk+構件庫的補充,它們提供了許多Gtk+構件沒有的功能。一般把這些構件稱為Gnome構件。使用Gnome構件可以使開發界面一致的應用程序變得更加容易。   Gnome的應用程序開發結構核心是一套庫,是由C語言編寫的,對很多語言都提供了GnomeAPI接口,包括Ada、Scheme、Python、Perl、Tom、Eiffel、Dylan等。  Gnome的開發架構包含以下一些內容:     1. 非Gnome庫   Gnome繼承了自由軟件一些函數庫。其中一些庫Gnome應用程序開發架構的一部分,但是不屬於Gnome庫。可以在Gnome環境中使用這些庫函數。主要有以下幾種:   Glib庫 —Glib是Gnome的基礎,它是一個C工具庫,提供了創建和操作常用數據結構的實用函數。   Gtk+庫—Gtk+(GIMPToolkit的縮寫),是在Gnome應用程序中使用的GUI工具包。Gnome在基本Gtk+構件集合的基礎上添加了許多其他構件。   ORBit庫—ORBit是一個用C開發的CORBA2.2ORB。和其他ORB相比,它短小精悍,但速度更快,同時還支持C語言映射。ORBit是以一整套庫函數的方式實現的。   Imlib庫 Imlib(圖片庫)提供一些例程,其中包括加載、存儲、顯示,以及定繪制各種流行的圖像格式(包括GIF、JPEG、PNG以及TIFF)的函數。     2. Gnome庫   Libgnome庫—Libgnome是一些與圖形用戶接口無關的函數集合,Gnome應用程序可以調用其中的函數。   Libgnomeui庫—Libgnomeui包含了與GUI相關的Gnome代碼。它由為增強和擴展Gtk+功能而設計的構件組成。libgnomeui主要包含:   (1)GnomeApp構件一般用來為應用程序創建主窗口。   (2)GnomeCanvas構件用來編寫定制構件。   (3)Gnome內置的pixmap用於創建和使用對話框的例程。   Libgnomeui中還有幾種其他構件,如GnomeEntry、GnomeFilePicker等。   Libgnorba庫—libgnorba提供與CORBA相關的實用程序。     3.其他庫   這些庫一般使用在Gnome應用程序中,但它不屬於Gnome-libs:   Gnome-print庫—Gnome-print提供一個虛擬輸出設備,一段代碼能輸出到一個打印預覽構件或PostScript文件,還可以輸出到其他打印機格式。   Gnome-XML庫—Gnome-xml能按照樹狀結構分析XML,也能按照XML輸出樹狀結構。   Guile庫 Guile是Scheme編程語言在一個庫中的實現,它使任何應用程序都能帶有一個嵌入式的Sheme解釋器。   Bonobo庫—Bonobo是一種對象嵌入式結構,類似於Microsoft的OLE。     編程語言和編程工具   在Linux下的常用開發語言是C語言,Linux上的很多應用程序就是用C語言寫的。當然,也可以使用其他語言。因為Gtk+和Gnome是用C語言編寫的,所以在開發Linux下的GUI程序時使用C語言是非常方便的。Gtk+也提供與許多其他語言的接口。   一般的Linux發布版本中都提供了C編譯器gcc或egcs。使用gcc或egcs可以編譯C和C++源代碼。各種C編譯器都要使用一些C語言實用函數。為了保證程序的可移植性,gcc沒有使用通用的C函數庫,而是使用一種稱為glib的函數庫。glib也是Gtk+的基礎。它包含一些標准函數的替代函數和基本數據結構的實現。  還有許多使用工具可以提高Linux下的編程效率,如gdb是優秀的C語言調試器,有非常豐富的調試指令。automake和autoconf用於由源代碼結構配置編譯選項,生成編譯所需的Makefile文件。  在Linux下開發GUI應用程序,像Windows平台上的可視化快速應用程序開發工具還很少。有幾種正在開發的RAD(Rapid Application Development)工具,比如我們以後將要介紹的Glade—一種GUI生成器,可以快速生成創建界面的C源程序。




Copyright © Linux教程網 All Rights Reserved