簡介@GTK+ 2.0 中文教程連載

來源:互聯網
上載者:User
簡介

GTK (GIMP Toolkit) 是一套用於建立圖形化使用者介面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發開源軟體、自由軟體,甚至是封閉原始碼的商業軟體,而不用花費任何錢來購買許可證和使用權。

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

GTK 的建立者是:

  • 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 實質上是一個物件導向的應用程式介面 (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 時遇到的各種困難,並歡迎對怎樣改進此文檔提出建議。更多資訊請參閱投稿
這一章。

<<< Previous Home Next >>>
中文版說明   從這裡開始

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.