Linux開發GUI應用程式概述

2021-04-30 14:44:37 字數 3189 閱讀 1527

linux開發gui應用程式概述

linux歷史簡介

2023年,芬蘭大學生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等。

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)的函式。

3.其他庫

這些庫一般使用在gnome應用程式中,但它不屬於gnome-libs:

gnome-print庫—gnome-print提供乙個虛擬輸出裝置,一段**能輸出到乙個列印預覽構件或postscript檔案,還可以輸出到其他印表機格式。

gnome-xml庫—gnome-xml能按照樹狀結構分析xml,也能按照xml輸出樹狀結構。

guile庫 guile是scheme程式語言在乙個庫中的實現,它使任何應用程式都能帶有乙個嵌入式的sheme直譯器。

bonobo庫—bonobo是一種物件嵌入式結構,類似於microsoft的ole。

Linux應用程式開發 Hello

第一步 在linux平台 我用的是redhat9.2 上安裝好gcc編譯工具,例如編譯arm平台的應用程式可用arm linux gcc,如用在pc平台下執行,可用pc自帶的gcc。第二步 編寫hello程式,可以使用redhat自帶的gedit。程式如下 include int main 並將程式...

LINUX應用程式開發隨筆

0.常用命令 1 perror 列印出錯的原因,可自動關聯全域性變數errno 2 strerror 列印errno對應的內容 3 malloc 4 ulimit 更改系統限制引數,例如 更改檔案可以開啟的最多數量 5 比較兩個檔案是否相同 diff file1 file2 如果相同,則什麼都不返回...

NUnitForms 測試GUI應用程式的優秀工具

著名的nunit是單元測試的優秀工具,但是要在乙個測試方法中啟動gui程式,比如windows form介面,這比較難做到。nunitforms就是為解決這個問題產生的,它是nunit的乙個擴充套件程式,可用於測試windows forms 型別的程式。在vs2010中新增乙個測試專案,新增對兩個程...