什麼是GTK+?
GTK+或GIMP工具包是用于建立圖形使用者界面的多平台工具包。GTK+提供了一套完整的構件(widget),适用于從小型一次性工具到完整的應用程式套件等項目。GTK+是跨平台的,并且擁有易于使用的API,進而加快了您的開發時間。GTK+是用C語言編寫的,但它是從底層設計的,支援各種各樣的語言,而不僅僅是C/C++。使用來自Perl和Python等語言(尤其是與Glade GUI Builder結合使用)的GTK+提供了快速應用程式開發的有效方法。
許可限制
GTK+是免費軟體,也是GNU項目的一部分。GTK+的許可條款GNU LGPL,允許所有開發人員使用它,包括那些開發商業軟體的人,任何人都不需要許可費或版稅。
穩定性
GTK+已經開發了十多年,能夠為您的應用程式開發提供誘人的功能和卓越的性能。GTK+得到了大量開發人員的支援,并擁有Red Hat、Novell、Lanedo、Codethink、Unless Mobile和Intel等公司的核心維護人員。
跨平台
最初,GTK+是為X視窗系統開發的,但随着時間的推移,它已經增加了對其他知名視窗系統的後端支援。今天您可以在以下位置使用GTK+:
- GNU/Linux and Unix
- Windows
- Mac OS X
語言綁定
由于可用的語言綁定,GTK+可用于許多其他程式設計語言。這使得GTK+成為應用程式開發非常有吸引力的工具包。
語言綁定(或“包裝器”)允許從其他程式設計語言使用GTK+,使用這些語言的樣式。它們相對容易建立,因為GTK+設計時考慮了它們。官方的GNOME綁定遵循GNOME釋出計劃,保證API的穩定性和基于時間的釋出。

适應性
GTK+滿足了當今開發人員在工具包中尋找的許多功能,包括:
- 本土化的外觀和感覺
- 主題支援
- 線程安全性
- 面向對象方法
- 國際化
- 本土化
- 可通路性
- 雙向文本支援(從左向右/從右向左)
- UTF8支援
- 文檔
接口
GTK+有一個核心構件和接口的綜合集合,可在應用程式中使用。
- 視窗(普通視窗或對話框、關于和助手對話框)
- 顯示(标簽、圖像、進度欄、狀态欄)
- 按鈕和切換(複選按鈕、單選按鈕、切換按鈕和連結按鈕)
- 數字(水準或垂直縮放和數值調節按鈕)和文本資料輸入(有或無完成)
- 多行文本編輯器
- 樹、清單和圖示網格檢視器(具有可自定義的渲染器和模型/視圖分離)
- 組合框(帶或不帶條目)
- 菜單(帶圖像、單選按鈕和複選項)
- 工具欄(帶有單選按鈕、切換按鈕和菜單按鈕)
- GTKbuilder(從XML建立使用者界面)
- 選擇器(顔色選擇、檔案選擇器、字型選擇)
- 布局(清單構件、表格構件、擴充器構件、架構、分隔符等)
- 狀态圖示(Linux上的通知區域,Windows上的托盤圖示)
- 列印構件
- 最近使用的文檔(菜單、對話框和管理器)
基礎
GTK+是建立在glib之上的。glib提供了應用程式中常見的基本算法語言構造。此庫具有以下功能:(此清單不是綜合清單)
- 對象和類型系統
- 主循環
- 動态加載子產品(即插件)
- 線程支援
- 定時器支援
- 記憶體配置設定器
- 線程隊列(同步和異步)
- 清單(單連結、雙連結、雙端)
- 哈希表
- 數組
- 樹(n元和二進制平衡)
- 字元串實用程式和字元集處理
- 詞彙掃描器和XML解析器
- base64(編碼和解碼)
移動裝置支援
gmae(gnome mobile&embedded)倡議推動了gnome元件作為移動和嵌入式使用者體驗平台的使用、開發和商業化。它彙集了行業上司者、專家顧問、關鍵開發人員以及他們所代表的社群和行業組織。是以,GTK+具有與移動和嵌入式平台需求相關的功能。在過去幾年中,GTK+參與了多項嵌入式計劃,包括:
- 諾基亞770/N800/N810/N900
- One Laptop Per Child Project
- OpenMoko
起源
GTK+最初是為GNU圖像處理程式gimp開發和使用的。它被稱為“gimp工具包”(The GIMP ToolKit),以便記住項目的起源。今天,它通常簡稱為GTK+,被大量應用程式使用,包括GNU項目的GNOME桌面。Peter Mattis在Spencer Kimball和Josh Macdonald的幫助下開始了這一切。Marius Vollmer教我們如何使GTK+用于語言綁定。LarsHamann和StefanJeske為核心構件添加了各種特性。CarstenHaitzler設計并完成了主題支援的第一個實作。Shawn Amundson釋出了GTK+1.0和GTK+1.2的管理。
GTK+系列---關于GTK+什麼是GTK+?
體系結構
随着時間的推移,GTK+團隊已經将GTK+建立在四個庫的基礎上:
- GLib,構成GTK+基礎的低級核心庫。它為C提供資料結構處理,可移植性封裝和接口,用于事件循環、線程、動态加載和對象系統等運作時功能。
- Pango,用于布局和呈現強調國際化的文本的庫。它構成了GTK+文本和字型處理的核心。
- Cairo,支援多個輸出裝置(包括x window系統、win32)的二維圖形庫,同時在所有媒體上生成一緻的輸出,同時利用可用的顯示硬體加速。
- ATK,用于提供可通路性的一組接口的庫。通過支援ATK接口,應用程式或工具包可以與螢幕閱讀器、放大鏡和其他輸入裝置等工具一起使用。