資料介紹
GTK (GIMP Toolkit) 是一套用于創建圖形用戶界面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發開源軟件、自由軟件,甚至是封閉源代碼的商業軟件,而不用花費任何錢來購買許可證和使用權。
GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發 GIMP (GNU 圖像處理程序) 的,但是它現在已經被用于很多軟件項目了,包括 GNOME (GNU 網絡對象模型環境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基礎上建立起來的,GDK 基本上是對訪問窗口的底層函數 (在 X 窗口系統中是 Xlib) 的一層封裝,gdk-pixbuf 是一個用于客戶端圖像處理的庫。
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 等,但我不了解這些。
用 GTK 來寫 Hello World
編譯 Hello World 程序
信號和回調函數的原理
事件
Hello World 詳解
繼續
數據類型
深入探索信號處理函數
改進了的 Hello World
組裝構件
組裝盒的原理
盒的細節
組裝示范程序
用表組裝
表組裝示例
構件概述
類型轉換
構件的組織
無窗口構件
按鈕構件
一般按鈕 Normal Buttons
開關按鈕 Toggle Buttons
復選按鈕 Check Buttons
單選按鈕 Radio Buttons
調整對象 Adjustments
創建一個調整對象
輕松使用調整對象
“調整對象”的內部機制
范圍構件 Range Widgets
滾動條構件 Scrollbar Widgets
比例構件 Scale Widgets
創建一個比例構件
函數和信號(至少講了函數)
常用的范圍函數
設置更新方式
獲得和設置調整對象
鍵盤和鼠標綁定
示例
雜項構件
標簽 Labels
箭頭 Arrows
工具提示對象 The Tooltips Object
進度條 Progress Bars
對話框 Dialogs
標尺 Rulers
狀態欄 Statusbars
文本輸入構件 Text Entries
微調按鈕 Spin Buttons
組合框 Combo Box
日歷 Calendar
顏色選擇 Color Selection
文件選擇 File Selections
容器構件 Container Widgets
事件盒 The EventBox
對齊構件 The Alignment widget
固定容器 Fixed Container
布局容器 Layout Container
框架 Frames
比例框架 Aspect Frames
分欄窗口構件 Paned Window Widgets
視角 Viewports
滾動窗口 Scrolled Windows
按鈕盒 Button Boxes
工具欄 Toolbar
筆記本 Notebooks
菜單構件
手工創建菜單
手工菜單示例
使用套件
套件示例
無文檔構件
快捷標簽 Accel Label
選項菜單 Option Menu
菜單項 Menu Items
復選菜單項 Check Menu Item
單選菜單項 Radio Menu Item
分隔菜單項 Separator Menu Item
分離菜單項 Tearoff Menu Item
曲線圖 Curves
繪圖區 Drawing Area
字體選擇對話框 Font Selection Dialog
消息對話框 Message Dialog
Gamma 曲線圖
圖像 Image
插頭和插座 Plugs and Sockets
樹視區 Tree View
文本視區 Text View
設置構件的屬性
超時、IO 和 Idle 函數
超時 Timeouts
監控IO
Idle 函數
高級事件和信號處理
信號函數
連接和斷開信號處理函數
阻塞和反阻塞信號處理函數
發出和停止信號
信號的發射和傳播
操作選中區
概述
獲取選中區信息
提供選中區
拖放
概述
屬性
函數
設置源構件
源構件上的信號
設置目的構件
目的構件上的信號
GLib
定義
雙向鏈表
單向鏈表
存儲管理
計時器
字符串處理
實用程序和錯誤處理函數
GTK 的 rc 文件
rc 文件的功能
GTK rc 文件的格式
rc 文件示例
編寫你自己的構件
概述
一個構件的剖析
創建一個復合構件
介紹
選擇一個父類
頭文件
_get_type() 函數
_class_init() 函數
_init() 函數
其余的...
從頭創建構件
介紹
在屏幕上顯示構件
表盤構件的原形
主體
gtk_dial_realize()
大小磋商
gtk_dial_expose()
事件處理
可能的增強
深入的學習
涂鴉板,一個簡單的繪圖程序
概述
事件處理
繪圖區構件和繪圖
添加XInput支持
允許擴展設備信息
使用擴展設備信息
得到更多關于設備的信息
進一步的講解
編寫 GTK 應用程序的技巧
投稿
鳴謝
教程的版權和許可聲明
GTK 信號
GtkObject
GtkWidget
GtkData
GtkContainer
GtkCalendar
GtkEditable
GtkNotebook
GtkList
GtkMenuShell
GtkToolbar
GtkButton
GtkItem
GtkWindow
GtkHandleBox
GtkToggleButton
GtkMenuItem
GtkCheckMenuItem
GtkInputDialog
GtkColorSelection
GtkStatusBar
GtkCurve
GtkAdjustment
GDK 事件類型
示例程序代碼
Tictactoe
tictactoe.h
tictactoe.c
ttt_test.c
GtkDial
gtkdial.h
gtkdial.c
dial_test.c
Scribble
scribble-simple.c
scribble-xinput.c
術語表
- 如何使用面板的AD20中文教程 2次下載
- Altium Designer14中文教程 90次下載
- STM32F103中文教程及參考手冊 332次下載
- 【串口屏LUA教程】Lua腳本語言中文教程
- proteldxp中文教材 0次下載
- Chariot中文教程 3次下載
- CST中文教程 76次下載
- Eclipse中文教程 0次下載
- sw2003中文教程 0次下載
- PADS Layout 2007中文教程 0次下載
- POWER PCB 中文教程
- matlab中文教程pdf
- multisim中文教程 0次下載
- cam350中文教程 0次下載
- Protel DXP 中文教材 (PDF文件格式) 0次下載
- USB 2.0信號質量測試 1641次閱讀
- Diodes公司USB 2.0信號調節器PI5USB212產品介紹 787次閱讀
- 什么是CAN2.0協議? 1381次閱讀
- IDEA接口測試神器Apipost Helper 2.0簡介 2086次閱讀
- USB2.0單/雙接口ESD靜電浪涌保護方案 2081次閱讀
- CXL 2.0設備發現的迷人路徑 1657次閱讀
- 鴻蒙2.0或在明年搭載于智慧穿戴中首次亮相 2948次閱讀
- 如何區分SATA 2.0接口與SATA 3.0接口 8.6w次閱讀
- TensorFlow 2.0 將包含許多 API 變更 5571次閱讀
- 開發工具Visual Studio 2017的安裝和使用圖文教程 9285次閱讀
- Directive Games解讀ARKit 2.0帶來的AR游戲可能性 4415次閱讀
- 一文教你怎么測量壓敏電阻的好壞 7.1w次閱讀
- 極路由怎么設置_極路由詳細設置圖文教程 12.6w次閱讀
- prolog中文教程及語法規則 2.1w次閱讀
- 精通USB 2.0集線器電源管理 4643次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論