資料介紹
GTK (GIMP Toolkit) 是一套用于創(chuàng)建圖形用戶界面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發(fā)開源軟件、自由軟件,甚至是封閉源代碼的商業(yè)軟件,而不用花費任何錢來購買許可證和使用權。
GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發(fā) GIMP (GNU 圖像處理程序) 的,但是它現(xiàn)在已經被用于很多軟件項目了,包括 GNOME (GNU 網絡對象模型環(huán)境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基礎上建立起來的,GDK 基本上是對訪問窗口的底層函數(shù) (在 X 窗口系統(tǒng)中是 Xlib) 的一層封裝,gdk-pixbuf 是一個用于客戶端圖像處理的庫。
GTK 實質上是一個面向對象的應用程序接口 (API)。盡管完全用 C 寫成的,但它是基于類和回調函數(shù) (指向函數(shù)的指針) 的思想實現(xiàn)的。
還有一個名為 GLib 的第三個組件,包含一些標準函數(shù)的替代函數(shù),以及一些處理鏈表等數(shù)據結構的函數(shù)等。這些替代函數(shù)被用來增強GTK 的可移植性,因為它們所實現(xiàn)的一些函數(shù)在其它 Unix 系統(tǒng)上未實現(xiàn)或不符合標準,比如 g_strerror()。一些是對 libc 的對應函數(shù)的增強,比如 g_malloc() 具有增強的調試功能。
在 2.0 版中,GLib 又加入這樣一些新內容:構成 GTK 類層次基礎的類型系統(tǒng) (type system),在 GTK 中廣泛使用的信號系統(tǒng),對各種不同平臺的線程 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++ 來開發(fā) GTK 應用程序,有以下幾點需要注意。已有一個 GTK 的 C++ 綁定叫做 GTK-- (譯者注:現(xiàn)在叫做 gtkmm),提供一個更符合 C++ 規(guī)范的接口,你可以先看看這個接口。如果你由于種種原因不喜歡這種方法,還有另外兩種使用 GTK 的方法。首先,你可以只使用 C++ 中的 C 子集來調用 GTK,這樣就可以使用本教程描述的 C 接口。其次,你可以用下述方法同時使用 GTK 和 C++:把所用的回調函數(shù)定義為 C++ 類中的靜態(tài)成員函數(shù),然后仍然使用 C 接口來調用 GTK。如果你選擇后一種方法,你可以把指向要操作的對象的指針 (即所謂的 "this")作為回調函數(shù)的 data 參數(shù)。選擇哪一種方法僅僅是個人的喜好問題,因為不管用哪一種方法,你都會得到 C++ 和 GTK。它們都不需要特殊的預處理程序,因此你可以同時使用標準 C++ 和 GTK。
本教程試圖盡可能詳細地描述 GTK,但是肯定不能面面俱到。本教程假設你能夠較好的理解 C 語言,并且了解怎樣編寫一個 C 程序。有 X 編程經驗會很有幫助,但不是必要條件。如果 GTK 是你學習的第一個構件工具包,請告訴我們你怎樣找到這個教程,以及學習時有什么困難。還有其它一些語言的綁定,如 C++、Objective C、ADA、Guile 等,但我不了解這些。
用 GTK 來寫 Hello World
編譯 Hello World 程序
信號和回調函數(shù)的原理
事件
Hello World 詳解
繼續(xù)
數(shù)據類型
深入探索信號處理函數(shù)
改進了的 Hello World
組裝構件
組裝盒的原理
盒的細節(jié)
組裝示范程序
用表組裝
表組裝示例
構件概述
類型轉換
構件的組織
無窗口構件
按鈕構件
一般按鈕 Normal Buttons
開關按鈕 Toggle Buttons
復選按鈕 Check Buttons
單選按鈕 Radio Buttons
調整對象 Adjustments
創(chuàng)建一個調整對象
輕松使用調整對象
“調整對象”的內部機制
范圍構件 Range Widgets
滾動條構件 Scrollbar Widgets
比例構件 Scale Widgets
創(chuàng)建一個比例構件
函數(shù)和信號(至少講了函數(shù))
常用的范圍函數(shù)
設置更新方式
獲得和設置調整對象
鍵盤和鼠標綁定
示例
雜項構件
標簽 Labels
箭頭 Arrows
工具提示對象 The Tooltips Object
進度條 Progress Bars
對話框 Dialogs
標尺 Rulers
狀態(tài)欄 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
菜單構件
手工創(chuàng)建菜單
手工菜單示例
使用套件
套件示例
無文檔構件
快捷標簽 Accel Label
選項菜單 Option Menu
菜單項 Menu Items
復選菜單項 Check Menu Item
單選菜單項 Radio Menu Item
分隔菜單項 Separator Menu Item
分離菜單項 Tearoff Menu Item
曲線圖 Curves
繪圖區(qū) Drawing Area
字體選擇對話框 Font Selection Dialog
消息對話框 Message Dialog
Gamma 曲線圖
圖像 Image
插頭和插座 Plugs and Sockets
樹視區(qū) Tree View
文本視區(qū) Text View
設置構件的屬性
超時、IO 和 Idle 函數(shù)
超時 Timeouts
監(jiān)控IO
Idle 函數(shù)
高級事件和信號處理
信號函數(shù)
連接和斷開信號處理函數(shù)
阻塞和反阻塞信號處理函數(shù)
發(fā)出和停止信號
信號的發(fā)射和傳播
操作選中區(qū)
概述
獲取選中區(qū)信息
提供選中區(qū)
拖放
概述
屬性
函數(shù)
設置源構件
源構件上的信號
設置目的構件
目的構件上的信號
GLib
定義
雙向鏈表
單向鏈表
存儲管理
計時器
字符串處理
實用程序和錯誤處理函數(shù)
GTK 的 rc 文件
rc 文件的功能
GTK rc 文件的格式
rc 文件示例
編寫你自己的構件
概述
一個構件的剖析
創(chuàng)建一個復合構件
介紹
選擇一個父類
頭文件
_get_type() 函數(shù)
_class_init() 函數(shù)
_init() 函數(shù)
其余的...
從頭創(chuàng)建構件
介紹
在屏幕上顯示構件
表盤構件的原形
主體
gtk_dial_realize()
大小磋商
gtk_dial_expose()
事件處理
可能的增強
深入的學習
涂鴉板,一個簡單的繪圖程序
概述
事件處理
繪圖區(qū)構件和繪圖
添加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中文教程 7次下載
- Altium Designer14中文教程 115次下載
- STM32F103中文教程及參考手冊 348次下載
- 【串口屏LUA教程】Lua腳本語言中文教程
- proteldxp中文教材 0次下載
- Chariot中文教程 3次下載
- android中文教程 1次下載
- CST中文教程 80次下載
- Eclipse中文教程 0次下載
- sw2003中文教程 0次下載
- PADS Layout 2007中文教程 0次下載
- POWER PCB 中文教程
- matlab中文教程pdf
- cam350中文教程 0次下載
- Protel DXP 中文教材 (PDF文件格式) 0次下載
- USB 2.0信號質量測試 4.5k次閱讀
- Diodes公司USB 2.0信號調節(jié)器PI5USB212產品介紹 2.4k次閱讀
- 什么是CAN2.0協(xié)議? 3k次閱讀
- IDEA接口測試神器Apipost Helper 2.0簡介 3.1k次閱讀
- USB2.0單/雙接口ESD靜電浪涌保護方案 3.6k次閱讀
- CXL 2.0設備發(fā)現(xiàn)的迷人路徑 2.6k次閱讀
- 鴻蒙2.0或在明年搭載于智慧穿戴中首次亮相 3.2k次閱讀
- 如何區(qū)分SATA 2.0接口與SATA 3.0接口 9.2w次閱讀
- TensorFlow 2.0 將包含許多 API 變更 5.9k次閱讀
- 開發(fā)工具Visual Studio 2017的安裝和使用圖文教程 1.1w次閱讀
- Directive Games解讀ARKit 2.0帶來的AR游戲可能性 4.9k次閱讀
- 一文教你怎么測量壓敏電阻的好壞 7.3w次閱讀
- 極路由怎么設置_極路由詳細設置圖文教程 12.8w次閱讀
- prolog中文教程及語法規(guī)則 2.3w次閱讀
- 精通USB 2.0集線器電源管理 9.9k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數(shù)據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論