資源簡介
簡介
GTK (GIMP Toolkit) 是一套用于創(chuàng)建圖形用戶界面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發(fā)開源軟件、自由軟件,甚至是
封閉源代碼的商業(yè)軟件,而不用花費任何錢來購買許可證和使用權。
GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發(fā) GIMP (GNU 圖像處理程序) 的,但是它現(xiàn)在已經(jīng)被用于很多軟件項目了,包括
GNOME (GNU 網(wǎng)絡對象模型環(huán)境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基礎上建立起來的,GDK 基本上是對訪問窗口的
底層函數(shù) (在 X 窗口系統(tǒng)中是 Xlib) 的一層封裝,gdk-pixbuf 是一個用于客戶端圖像處理的庫。
GTK 的創(chuàng)建者是:
· Peter Mattis petm@xcf.berkeley.edu
· Spencer Kimball spencer@xcf.berkeley.edu
· Josh MacDonald jmacd@xcf.berkeley.edu
GTK 的當前維護者是:
· Owen Taylor otaylor@redhat.com
· Tim Janik timj@gtk.org
GTK 實質(zhì)上是一個面向?qū)ο蟮膽贸绦蚪涌?(API)。盡管完全用 C 寫成的,但它是基于類和回調(diào)函數(shù) (指向函數(shù)的指針) 的思想實現(xiàn)的。
還 有一個名為 GLib 的第三個組件,包含一些標準函數(shù)的替代函數(shù),以及一些處理鏈表等數(shù)據(jù)結(jié)構的函數(shù)等。這些替代函數(shù)被用來增強
GTK 的可移植性,因為它們所實現(xiàn)的一些函數(shù)在其它 Unix 系統(tǒng)上未實現(xiàn)或不符合標準,比如 g_strerror()。一些是對 libc 的對應函
數(shù)的增強,比如 g_malloc() 具有增強的調(diào)試功能。
在 2.0 版中,GLib 又加入這樣一些新內(nèi)容:構成 GTK 類層次基礎的類型系統(tǒng) (type system),在 GTK 中廣泛使用的信號系統(tǒng),對各
種不同平臺的線程 API 進行抽象而得的一個線程 API,以及一個加載模塊的工具。
作為最后一個組件,GTK 使用了 Pango 庫來處理國際化文字輸出。
本 教程講述 GTK 的 C 接口。還有許多其它語言的 GTK 綁定如 C++、Perl、Python、TOM、Ada95、Objective C、Free Pascal、Eiffel、Java
和 C#。如果你想使用 GTK 其它語言的綁定,請先查看該綁定的文檔。有時這些文檔會講一些重要的概念,然后你再來參考本教程。還有一
些跨平臺的 API (如 wxWindows 和 V),它們把 GTK 作為一個支持的平臺。同樣,先參考它們的文檔。
如果你用 C++ 來開發(fā) GTK 應用程序,有以下幾點需要注意。已有一個 GTK 的 C++ 綁定叫做 GTK-- (譯者注:現(xiàn)在叫做 gtkmm),提供
一個更符合 C++ 規(guī)范的接口,你可以先看看這個接口。如果你由于種種原因不喜歡這種方法,還有另外兩種使用 GTK 的方法。首先,你
可以只使用 C++ 中的 C 子集來調(diào)用 GTK,這樣就可以使用本教程描述的 C 接口。其次,你可以用下述方法同時使用 GTK 和 C++:把所
用的回調(diào)函數(shù)定義為 C++ 類中的靜態(tài)成員函數(shù),然后仍然使用 C 接口來調(diào)用 GTK。如果你選擇后一種方法,你可以把指向要操作的對象
3 / 258
的指針 (即所謂的 "this")作為回調(diào)函數(shù)的 data 參數(shù)。選擇哪一種方法僅僅是個人的喜好問題,因為不管用哪一種方法,你都會得到
C++ 和 GTK。它們都不需要特殊的預處理程序,因此你可以同時使用標準 C++ 和 GTK。
本教程試圖盡可能詳細地描述 GTK,但是肯定不能面面俱到。本教程假設你能夠較好的理解 C 語言,并且了解怎樣編寫一個 C 程序。有
X 編程經(jīng)驗會很有幫助,但不是必要條件。如果 GTK 是你學習的第一個構件工具包,請告訴我們你怎樣找到這個教程,以及學習時有什
么困難。還有其它一些語言的綁定,如 C++、Objective C、ADA、Guile 等,但我不了解這些。
本教程仍在不斷完善中。請到 http://www.gtk.org/ 查看更新情況。
我非常樂意聽到你在使用本教程學習 GTK 時遇到的各種困難,并歡迎對怎樣改進此文檔提出建議。更多信息請參閱投稿這一章。

代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????403985??2009-07-17?19:31??GTK%2B2.0教程.chm
-----------?---------??----------?-----??----
???????????????403985????????????????????1
-----------?---------??----------?-----??----
?????文件?????403985??2009-07-17?19:31??GTK%2B2.0教程.chm
-----------?---------??----------?-----??----
???????????????403985????????????????????1
評論
共有 條評論