資料介紹
GTK (GIMP Toolkit) 是一套用于創(chuàng)建圖形用戶界面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發(fā)開源軟件、自由軟件,甚至是封閉源代碼的商業(yè)軟件,而不用花費任何錢來購買許可證和使用權(quán)。
GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發(fā) GIMP (GNU 圖像處理程序) 的,但是它現(xiàn)在已經(jīng)被用于很多軟件項目了,包括 GNOME (GNU 網(wǎng)絡(luò)對象模型環(huán)境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基礎(chǔ)上建立起來的,GDK 基本上是對訪問窗口的底層函數(shù) (在 X 窗口系統(tǒng)中是 Xlib) 的一層封裝,gdk-pixbuf 是一個用于客戶端圖像處理的庫。
GTK 實質(zhì)上是一個面向?qū)ο蟮膽?yīng)用程序接口 (API)。盡管完全用 C 寫成的,但它是基于類和回調(diào)函數(shù) (指向函數(shù)的指針) 的思想實現(xiàn)的。
還有一個名為 GLib 的第三個組件,包含一些標(biāo)準(zhǔn)函數(shù)的替代函數(shù),以及一些處理鏈表等數(shù)據(jù)結(jié)構(gòu)的函數(shù)等。這些替代函數(shù)被用來增強GTK 的可移植性,因為它們所實現(xiàn)的一些函數(shù)在其它 Unix 系統(tǒng)上未實現(xiàn)或不符合標(biāo)準(zhǔn),比如 g_strerror()。一些是對 libc 的對應(yīng)函數(shù)的增強,比如 g_malloc() 具有增強的調(diào)試功能。
在 2.0 版中,GLib 又加入這樣一些新內(nèi)容:構(gòu)成 GTK 類層次基礎(chǔ)的類型系統(tǒng) (type system),在 GTK 中廣泛使用的信號系統(tǒng),對各種不同平臺的線程 API 進(jìn)行抽象而得的一個線程 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 應(yīng)用程序,有以下幾點需要注意。已有一個 GTK 的 C++ 綁定叫做 GTK-- (譯者注:現(xiàn)在叫做 gtkmm),提供一個更符合 C++ 規(guī)范的接口,你可以先看看這個接口。如果你由于種種原因不喜歡這種方法,還有另外兩種使用 GTK 的方法。首先,你可以只使用 C++ 中的 C 子集來調(diào)用 GTK,這樣就可以使用本教程描述的 C 接口。其次,你可以用下述方法同時使用 GTK 和 C++:把所用的回調(diào)函數(shù)定義為 C++ 類中的靜態(tài)成員函數(shù),然后仍然使用 C 接口來調(diào)用 GTK。如果你選擇后一種方法,你可以把指向要操作的對象的指針 (即所謂的 "this")作為回調(diào)函數(shù)的 data 參數(shù)。選擇哪一種方法僅僅是個人的喜好問題,因為不管用哪一種方法,你都會得到 C++ 和 GTK。它們都不需要特殊的預(yù)處理程序,因此你可以同時使用標(biāo)準(zhǔn) C++ 和 GTK。
本教程試圖盡可能詳細(xì)地描述 GTK,但是肯定不能面面俱到。本教程假設(shè)你能夠較好的理解 C 語言,并且了解怎樣編寫一個 C 程序。有 X 編程經(jīng)驗會很有幫助,但不是必要條件。如果 GTK 是你學(xué)習(xí)的第一個構(gòu)件工具包,請告訴我們你怎樣找到這個教程,以及學(xué)習(xí)時有什么困難。還有其它一些語言的綁定,如 C++、Objective C、ADA、Guile 等,但我不了解這些。
用 GTK 來寫 Hello World
編譯 Hello World 程序
信號和回調(diào)函數(shù)的原理
事件
Hello World 詳解
繼續(xù)
數(shù)據(jù)類型
深入探索信號處理函數(shù)
改進(jìn)了的 Hello World
組裝構(gòu)件
組裝盒的原理
盒的細(xì)節(jié)
組裝示范程序
用表組裝
表組裝示例
構(gòu)件概述
類型轉(zhuǎn)換
構(gòu)件的組織
無窗口構(gòu)件
按鈕構(gòu)件
一般按鈕 Normal Buttons
開關(guān)按鈕 Toggle Buttons
復(fù)選按鈕 Check Buttons
單選按鈕 Radio Buttons
調(diào)整對象 Adjustments
創(chuàng)建一個調(diào)整對象
輕松使用調(diào)整對象
“調(diào)整對象”的內(nèi)部機制
范圍構(gòu)件 Range Widgets
滾動條構(gòu)件 Scrollbar Widgets
比例構(gòu)件 Scale Widgets
創(chuàng)建一個比例構(gòu)件
函數(shù)和信號(至少講了函數(shù))
常用的范圍函數(shù)
設(shè)置更新方式
獲得和設(shè)置調(diào)整對象
鍵盤和鼠標(biāo)綁定
示例
雜項構(gòu)件
標(biāo)簽 Labels
箭頭 Arrows
工具提示對象 The Tooltips Object
進(jìn)度條 Progress Bars
對話框 Dialogs
標(biāo)尺 Rulers
狀態(tài)欄 Statusbars
文本輸入構(gòu)件 Text Entries
微調(diào)按鈕 Spin Buttons
組合框 Combo Box
日歷 Calendar
顏色選擇 Color Selection
文件選擇 File Selections
容器構(gòu)件 Container Widgets
事件盒 The EventBox
對齊構(gòu)件 The Alignment widget
固定容器 Fixed Container
布局容器 Layout Container
框架 Frames
比例框架 Aspect Frames
分欄窗口構(gòu)件 Paned Window Widgets
視角 Viewports
滾動窗口 Scrolled Windows
按鈕盒 Button Boxes
工具欄 Toolbar
筆記本 Notebooks
菜單構(gòu)件
手工創(chuàng)建菜單
手工菜單示例
使用套件
套件示例
無文檔構(gòu)件
快捷標(biāo)簽 Accel Label
選項菜單 Option Menu
菜單項 Menu Items
復(fù)選菜單項 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
設(shè)置構(gòu)件的屬性
超時、IO 和 Idle 函數(shù)
超時 Timeouts
監(jiān)控IO
Idle 函數(shù)
高級事件和信號處理
信號函數(shù)
連接和斷開信號處理函數(shù)
阻塞和反阻塞信號處理函數(shù)
發(fā)出和停止信號
信號的發(fā)射和傳播
操作選中區(qū)
概述
獲取選中區(qū)信息
提供選中區(qū)
拖放
概述
屬性
函數(shù)
設(shè)置源構(gòu)件
源構(gòu)件上的信號
設(shè)置目的構(gòu)件
目的構(gòu)件上的信號
GLib
定義
雙向鏈表
單向鏈表
存儲管理
計時器
字符串處理
實用程序和錯誤處理函數(shù)
GTK 的 rc 文件
rc 文件的功能
GTK rc 文件的格式
rc 文件示例
編寫你自己的構(gòu)件
概述
一個構(gòu)件的剖析
創(chuàng)建一個復(fù)合構(gòu)件
介紹
選擇一個父類
頭文件
_get_type() 函數(shù)
_class_init() 函數(shù)
_init() 函數(shù)
其余的...
從頭創(chuàng)建構(gòu)件
介紹
在屏幕上顯示構(gòu)件
表盤構(gòu)件的原形
主體
gtk_dial_realize()
大小磋商
gtk_dial_expose()
事件處理
可能的增強
深入的學(xué)習(xí)
涂鴉板,一個簡單的繪圖程序
概述
事件處理
繪圖區(qū)構(gòu)件和繪圖
添加XInput支持
允許擴展設(shè)備信息
使用擴展設(shè)備信息
得到更多關(guān)于設(shè)備的信息
進(jìn)一步的講解
編寫 GTK 應(yīng)用程序的技巧
投稿
鳴謝
教程的版權(quán)和許可聲明
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
術(shù)語表
- 如何使用面板的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信號質(zhì)量測試 1641次閱讀
- Diodes公司USB 2.0信號調(diào)節(jié)器PI5USB212產(chǎn)品介紹 787次閱讀
- 什么是CAN2.0協(xié)議? 1381次閱讀
- IDEA接口測試神器Apipost Helper 2.0簡介 2086次閱讀
- USB2.0單/雙接口ESD靜電浪涌保護(hù)方案 2081次閱讀
- CXL 2.0設(shè)備發(fā)現(xiàn)的迷人路徑 1657次閱讀
- 鴻蒙2.0或在明年搭載于智慧穿戴中首次亮相 2948次閱讀
- 如何區(qū)分SATA 2.0接口與SATA 3.0接口 8.6w次閱讀
- TensorFlow 2.0 將包含許多 API 變更 5571次閱讀
- 開發(fā)工具Visual Studio 2017的安裝和使用圖文教程 9285次閱讀
- Directive Games解讀ARKit 2.0帶來的AR游戲可能性 4415次閱讀
- 一文教你怎么測量壓敏電阻的好壞 7.1w次閱讀
- 極路由怎么設(shè)置_極路由詳細(xì)設(shè)置圖文教程 12.6w次閱讀
- prolog中文教程及語法規(guī)則 2.1w次閱讀
- 精通USB 2.0集線器電源管理 4643次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 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 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論