天天看點

GTK+系列---關于GTK+什麼是GTK+?

什麼是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+系列---關于GTK+什麼是GTK+?

 适應性

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接口,應用程式或工具包可以與螢幕閱讀器、放大鏡和其他輸入裝置等工具一起使用。

繼續閱讀