歡迎您光臨本站 註冊首頁

關於Linux GUI,GNOME,的一點閱讀心得

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

以下表述非常不準確,僅對於自我理解加強一點記憶。

1. D-Bus, DCOP, bonobo

bonobo, 是GNOME中採用CORBA標準的一個組件模型。是受微軟OLE的啟發而開發出來的。

DCOP是用於KDE3.X的一套IPC機制。而在新的GNOME以及KDE4中都採用D-Bus作為新的IPC機制。D-Bus是建立於HAL之上的一個系統,採用消息機制實現IPC。使用這些機制的好處是,可以很靈活地在不同進程間建立通信,使得進程執行更自動化更智能,比如我們可以通過DCOP的命令行介面來控制KDE的桌面,如改變背景,關閉一個採用DCOP的程序等。

2.關於gtk+中的Widget,style,theme engine

widget,英文意思是小玩意,在UI中表示窗口的部件,如按鈕,複選框等。

gtk+即是一套widget的組合,使用gtk+可以創建應用程序的UI。

style是指widget顯示的方式,比如色彩、字體、背景圖像等。

theme engine是一組共享的object,提供用以繪製app的代碼;另外還包含配置文件,資源文件(點陣圖等)。而一個theme則是一套配置文件的組合,指定了這個theme中的每個widget採用什麼engine和style,另外可能還有一些自帶的資源文件。

3.GTK+是圖形庫嗎?
嚴格來說不是。GTK+提供了一套API用於繪製應用程序的GUI,而它的底層是Cairo。Cairo才是嚴格意義上的圖形庫,它提供了優質的矢量圖繪製API。

4.GNOME的組成部件

架構如下:
Glade,etc.
GTK+
GDK,Pango
Cairo,GLib

其中
GDK是GTK+與最底層X Window之間的一個中間層,可以直接使用它來繪製UI。(類似Java中Swing與awt的關係)

GLib(區別GLibc)提供了最基礎的數據類型、宏等代碼,以提供給上層程序使用。Pango是一套用以渲染、繪製字體的庫。而Glade是更高層次的對GTK+的封裝,通過編寫XML配置文件可以容易地建立應用程序的UI,把編寫UI與程序底層功能的代碼分離了。有點類似MFC與Win32 API的關係。

5.Nautilus
是GNOME的標準文件管理器,提供給用戶一個標準的界面,用以瀏覽文件系統,啟動應用程序等。

注意:GNOME中的"桌面"實際也是一個Nautilus的窗口。

6.關於桌面"程序"
KDE與GNOME均遵循freedesktop的desktop entry標準,採用一個配置文件來運行程序

如:
(xxx.desktop的內容如下)
[Desktop Entry]
Name=xxx
exec=yyy
comment=zzz
...

即是一個有效的desktop entry項,GNOME和KDE都會自動讀取此配置文件信息同時執行裡面描述的程序。

[火星人 ] 關於Linux GUI,GNOME,的一點閱讀心得已經有428次圍觀

http://coctec.com/docs/linux/show-post-114432.html