首頁 / LinuxDev / GTK+ 2.0 教學-簡介

GTK+ 2.0 教學-簡介

(GIMP Toolkit) 是一套用於創建圖形界面的函式庫。它遵循 LGPL 許可證,所以你可以用它來開發自由軟體,甚至是付費的的商業軟體,而不用花費任何錢來購買許可證和使用權。

GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發 GIMP (GNU 影像處理程式) 的,但是它現在已經被用於很多軟體專案了,包括 GNOME (GNU 網路物件模組環境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基礎上建立起來的,GDK 基本上是對存取視窗的底層函式 (在 X Windows系統中是 Xlib) 的一層外包,gdk-pixbuf 是一個用於客戶端影像處理的函式庫。

GTK 的創建者是:

GTK 的當前維護者是:

GTK 實質上是一個物件導向的應用程式介面 (API)。儘管完全用 C 寫成的,但它是基於類別和回呼函式 (指向函式的指標) 的思想實現的。

還有一個名為 GLib 的第三個組件,包含一些標準呼叫的替代函式,以及一些處理鏈結串列的函式等。這些替代函式被用來增強GTK 的可移植性,因為它們所實現的一些函式在其它 Unix 系統上未實現或不符合標準,比如 g_strerror()。一些是對 libc 的對應函式的增強,比如 g_malloc() 具有增強的除錯功能。

在 2.0 版中,GLib 又加入這樣一些新內容:構成 GTK 類別組織基礎的型別系統 (type system),在 GTK 中廣泛使用的信號系統,對各種不同平台的執行緒 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++ 來開發 GTK 應用程式,有以下幾點需要注意。已有一個 GTK 的 C++ 系結叫做 GTK– (譯者註:現在叫做 gtkmm),提供一個更符合 C++ 規範的介面,你可以先看看這個介面。如果你由於種種原因不喜歡這種方法,還有另外兩種使用 GTK 的方法。首先,你可以只使用 C++ 中的 C 子集來調用 GTK,這樣就可以使用本教學描述的 C 介面。其次,你可以用下述方法同時使用 GTK 和 C++:把所用的回呼函式定義為 C++ 類別中的靜態成員函式,然後仍然使用 C 介面來調用 GTK。如果你選擇後一種方法,你可以把指向要操作的物件的指標 (即所謂的 “this”)作為回呼函式的 data 參數。選擇哪一種方法僅僅是個人的喜好問題,因為不管用哪一種方法,你都會得到 C++ 和 GTK。它們都不需要特殊的前處理器,因此你可以同時使用標準 C++ 和 GTK。

本教學試圖盡可能詳細地描述 GTK,但是肯定不能面面俱到。本教學假設你已經了解 C 語言,並且瞭解怎樣編寫一個 C 程式。有 X 程式設計經驗會很有幫助,但不是必要條件。如果 你學習GTK做為第一個元件集,請給我們一些建議,有關於您在本導引所學到及發現的東西,另外也有C++、Objective C、ADA、Guile 等語言的系結可用,但我不瞭解這些。

本教學仍在不斷完善中。請到 http://www.gtk.org/ 查看更新情況。

我非常樂意聽到你在使用本教學學習 GTK 時遇到的各種困難,並歡迎對怎樣改進此文件提出建議。更多訊息請參閱投稿這一章。

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

2 comments

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top