Linux下的图形界面编程
生活随笔
收集整理的這篇文章主要介紹了
Linux下的图形界面编程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、Qt和GTK+
雖然Linux下的大多數(shù)開發(fā)是基于字符界面的,但在Linux環(huán)境下也可以開發(fā)出美觀大方的圖形界面。經(jīng)過多年的發(fā)展,目前已經(jīng)存在多種用于在Linux下開發(fā)圖形界面程序的開發(fā)包,其中較為常用的是Qt和GTK+。
Qt是一個(gè)跨平臺(tái)的圖形用戶界面開發(fā)庫,它不僅支持Linux操作系統(tǒng),還支持所有類型的UNIX以及Windows操作系統(tǒng)。Qt良好的封裝機(jī)制使它模塊化程序非常高,可重用性很強(qiáng),Qt提供了豐富的API供開發(fā)人員使用。使用Qt開發(fā)的圖形用戶界面程序具有良好的穩(wěn)定性和健壯性。桌面環(huán)境KDE(K Desktop Environment即K桌面環(huán)境)就是使用Qt作為其底層庫開發(fā)出來的。
由于Qt使用C++面向?qū)ο缶幊陶Z言作為其開發(fā)語言,而許多Linux從事開發(fā)的程序員更喜歡或更習(xí)慣于用C語言。GTK+使用C語言作為開發(fā)語言。它基于LGPL授權(quán),因此GTK+是開放源代碼而且完全免費(fèi)的。GTK+簡(jiǎn)單易用,執(zhí)行效率高。基于這些原因,GTK+擁有為數(shù)眾多的擁護(hù)者。LInux的桌面環(huán)境GNOME就是建立在GTK+基礎(chǔ)上。
二、GTK+簡(jiǎn)介
下圖是GTK+在幾種相關(guān)的開發(fā)庫中的位置。
Application
GNOME
GTK+
GDK
?? glib X
?? C
上圖中每層除了與其上下相鄰的兩層有聯(lián)系外,似乎與其他層沒有關(guān)系。實(shí)際上,任何上層都可以調(diào)用位于它下面的各層提供的函數(shù)。例如,GTK+不僅可以調(diào)用GDK函數(shù),也可以調(diào)用glib和C庫函數(shù)。
下面按層作簡(jiǎn)單的介紹,具體說明如下:
層 ?? 具體描述
C ?? 有兩類C庫函數(shù)可供調(diào)用,一類是標(biāo)準(zhǔn)C的庫函數(shù),如printf,scanf;另一類是?
??????????????????? Linux的系統(tǒng)調(diào)用,如open,read,write,fork
glib?????????????? glib是GDK、GTK+、GNOME應(yīng)用程序常用的庫。它包含內(nèi)存分配、字符串操
??????????????????? 作、日期和時(shí)間、定時(shí)器等庫函數(shù),也包括鏈表、隊(duì)列、樹等數(shù)據(jù)結(jié)構(gòu)相關(guān)的工
?????????????????? 具函數(shù)
X???????????????? 它是控制圖形顯示的底層函數(shù)庫,包括所有的窗口顯示函數(shù)、響應(yīng)鼠標(biāo)和鍵盤操
?????????????????? 作的函數(shù)
GDK???????????? GDK(GIMP繪圖包)是為了簡(jiǎn)化程序員使用X函數(shù)庫而開發(fā)的。X庫是其低層函
??????????????????? 數(shù)庫,GDK對(duì)其進(jìn)行了封裝,從而使程序員的開發(fā)效率大為提高。
GTK+?????????? GTK+就是GIMP工具包,它把GDK提供的函數(shù)組織成對(duì)象,使用C語言模擬出
??????????????????? 面對(duì)象的特征,這使得用它開發(fā)出來的圖形界面程序更為簡(jiǎn)單和高效。GTK+的
??????????????????? 一個(gè)重要組成部分是widget(控件,也稱為小部件),按鈕、文本編輯框、標(biāo)
??????????????????? 簽等都是widget
GNOME??????? GNOME庫是對(duì)GTK+的擴(kuò)展,GNOME桌面環(huán)境用來控制整個(gè)桌面。GNOME
????????????????? 使用GNOME對(duì)象和函數(shù)與桌面小部件交互,基本小部件由GTK+處理。GNOME
??????????????????? 為了方便程序員還增加了一些專門的小部件。
Application?? Application即應(yīng)用程序,它完成窗口的初始化,創(chuàng)建并顯示窗口,進(jìn)入消息循
??????????????????? 環(huán),等待用戶使用鼠標(biāo)或鍵盤進(jìn)行操作。
??? 簡(jiǎn)單地說,GTK+就是用C語言編寫的用于開發(fā)圖形界面程序的函數(shù)庫。GTK+來源于GIMP(GNU Image Minipulation Program,即GNU圖像處理程序)。GTK+在GDK(GIMP Drawing Kit,即GIMP繪圖包)基礎(chǔ)上創(chuàng)建,對(duì)它進(jìn)行封裝。GTK+簡(jiǎn)單易用,它設(shè)計(jì)良好,靈活而富有擴(kuò)展性。它是自由軟件,這意味著被它不僅開放源代碼,而且還可以免費(fèi)使用。由于它使用C語言作為其開發(fā)語言,而C語言是跨平臺(tái)的,因此GTK+幾乎可以在任何操作系統(tǒng)上使用。 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
雖然Linux下的大多數(shù)開發(fā)是基于字符界面的,但在Linux環(huán)境下也可以開發(fā)出美觀大方的圖形界面。經(jīng)過多年的發(fā)展,目前已經(jīng)存在多種用于在Linux下開發(fā)圖形界面程序的開發(fā)包,其中較為常用的是Qt和GTK+。
Qt是一個(gè)跨平臺(tái)的圖形用戶界面開發(fā)庫,它不僅支持Linux操作系統(tǒng),還支持所有類型的UNIX以及Windows操作系統(tǒng)。Qt良好的封裝機(jī)制使它模塊化程序非常高,可重用性很強(qiáng),Qt提供了豐富的API供開發(fā)人員使用。使用Qt開發(fā)的圖形用戶界面程序具有良好的穩(wěn)定性和健壯性。桌面環(huán)境KDE(K Desktop Environment即K桌面環(huán)境)就是使用Qt作為其底層庫開發(fā)出來的。
由于Qt使用C++面向?qū)ο缶幊陶Z言作為其開發(fā)語言,而許多Linux從事開發(fā)的程序員更喜歡或更習(xí)慣于用C語言。GTK+使用C語言作為開發(fā)語言。它基于LGPL授權(quán),因此GTK+是開放源代碼而且完全免費(fèi)的。GTK+簡(jiǎn)單易用,執(zhí)行效率高。基于這些原因,GTK+擁有為數(shù)眾多的擁護(hù)者。LInux的桌面環(huán)境GNOME就是建立在GTK+基礎(chǔ)上。
二、GTK+簡(jiǎn)介
下圖是GTK+在幾種相關(guān)的開發(fā)庫中的位置。
Application
GNOME
GTK+
GDK
?? glib X
?? C
上圖中每層除了與其上下相鄰的兩層有聯(lián)系外,似乎與其他層沒有關(guān)系。實(shí)際上,任何上層都可以調(diào)用位于它下面的各層提供的函數(shù)。例如,GTK+不僅可以調(diào)用GDK函數(shù),也可以調(diào)用glib和C庫函數(shù)。
下面按層作簡(jiǎn)單的介紹,具體說明如下:
層 ?? 具體描述
C ?? 有兩類C庫函數(shù)可供調(diào)用,一類是標(biāo)準(zhǔn)C的庫函數(shù),如printf,scanf;另一類是?
??????????????????? Linux的系統(tǒng)調(diào)用,如open,read,write,fork
glib?????????????? glib是GDK、GTK+、GNOME應(yīng)用程序常用的庫。它包含內(nèi)存分配、字符串操
??????????????????? 作、日期和時(shí)間、定時(shí)器等庫函數(shù),也包括鏈表、隊(duì)列、樹等數(shù)據(jù)結(jié)構(gòu)相關(guān)的工
?????????????????? 具函數(shù)
X???????????????? 它是控制圖形顯示的底層函數(shù)庫,包括所有的窗口顯示函數(shù)、響應(yīng)鼠標(biāo)和鍵盤操
?????????????????? 作的函數(shù)
GDK???????????? GDK(GIMP繪圖包)是為了簡(jiǎn)化程序員使用X函數(shù)庫而開發(fā)的。X庫是其低層函
??????????????????? 數(shù)庫,GDK對(duì)其進(jìn)行了封裝,從而使程序員的開發(fā)效率大為提高。
GTK+?????????? GTK+就是GIMP工具包,它把GDK提供的函數(shù)組織成對(duì)象,使用C語言模擬出
??????????????????? 面對(duì)象的特征,這使得用它開發(fā)出來的圖形界面程序更為簡(jiǎn)單和高效。GTK+的
??????????????????? 一個(gè)重要組成部分是widget(控件,也稱為小部件),按鈕、文本編輯框、標(biāo)
??????????????????? 簽等都是widget
GNOME??????? GNOME庫是對(duì)GTK+的擴(kuò)展,GNOME桌面環(huán)境用來控制整個(gè)桌面。GNOME
????????????????? 使用GNOME對(duì)象和函數(shù)與桌面小部件交互,基本小部件由GTK+處理。GNOME
??????????????????? 為了方便程序員還增加了一些專門的小部件。
Application?? Application即應(yīng)用程序,它完成窗口的初始化,創(chuàng)建并顯示窗口,進(jìn)入消息循
??????????????????? 環(huán),等待用戶使用鼠標(biāo)或鍵盤進(jìn)行操作。
??? 簡(jiǎn)單地說,GTK+就是用C語言編寫的用于開發(fā)圖形界面程序的函數(shù)庫。GTK+來源于GIMP(GNU Image Minipulation Program,即GNU圖像處理程序)。GTK+在GDK(GIMP Drawing Kit,即GIMP繪圖包)基礎(chǔ)上創(chuàng)建,對(duì)它進(jìn)行封裝。GTK+簡(jiǎn)單易用,它設(shè)計(jì)良好,靈活而富有擴(kuò)展性。它是自由軟件,這意味著被它不僅開放源代碼,而且還可以免費(fèi)使用。由于它使用C語言作為其開發(fā)語言,而C語言是跨平臺(tái)的,因此GTK+幾乎可以在任何操作系統(tǒng)上使用。 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Linux下的图形界面编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV中重映射
- 下一篇: linux图形界面编程基本知识