GTK+ 2.0 Tree View 教學

Tim-Philipp Müller

這是一份關於透過C語言使用GTK(GIMP工具箱)的GtkTreeView元件的教學。

請 mail 所有的意見和建議至

這份教學有 tarball 檔可以離線閱讀其中包括了範例程式碼,檔案可以在: treeview-tutorial.tar.gz 下載。

也有 PDF 格式檔的版本 (比較方便列印) 及 原始的 docbook XML 來源文件.

這份教學還在撰寫中,最新的版本可以在 http://scentric.net/tutorial/找到。

有些章節有一點過期(例如:GtkTreeModelFilter 自從 2.4),但是還沒有重寫或更新,抱歉了!

最新更新:2005/6/5

繁體中文譯者:ㄚ琪

緣由:看了舊課本的Tree,發現在新版的GTK下不能完成編譯,比照一些用法,發現變化太大了,因此我又想動手翻成中文了,但是這一份沒有簡體版,看來得要親力親為了,如果有人有興趣一起翻的話,留言給我知道,謝謝!


目錄
1. Lists 和 Trees: GtkTreeView 元件
1.1. Hello World
2. 成份: Model, Renderer, Column, View
3. 資料儲存用的GtkTreeModels: GtkListStore 及 GtkTreeStore
3.1. 資料的儲存情形
3.2. 說到這個列: GtkTreeIter、 GtkTreePath、 GtkTreeRowReference
3.2.1. GtkTreePath
3.2.2. GtkTreeIter
3.2.3. GtkTreeRowReference
3.2.4. 用法
3.3. 新增紀錄到儲存
3.3.1. 新增紀錄到一個List 儲存
3.3.2. 新增紀錄到一個Tree儲存
3.3.3. 新增大量紀錄時速度的考量
3.4. 處理原始資料
3.5. 擷取原始資料
3.5.1. 釋放擷取的原始資料
3.6. 移除紀錄
3.7. 移除多重紀錄
3.8. 儲存 GObjects (Pixbufs 等等.)
3.9. 儲存Pointers、GBoxed型別及Gobjec的資料結構(TODO)
4. 建構一個 Tree View
4.1. 連接Tree View 及 Model
4.1.1. 引用計數
4.2. Tree View 看起來的感覺
5. 映射資料到螢幕: GtkTreeViewColumn 及 GtkCellRenderer
5.1. Cell Renderers
5.2. 屬性
5.3. 儲存格資料函式
5.4. GtkCellRendererText 及 整數、布林及浮點數型別
5.5. GtkCellRendererText, UTF8, 及 pango 標記
5.6. 一個使用中的例子
5.7. 如何將整列紀錄粗體化或著色
5.8. 如何將圖示封裝入Tree View
6. 選取、雙擊及功能選單
6.1. 處理選取
6.1.1. 選取模式
6.1.2. 取得目前選取的紀錄
6.1.3. 使用選取的函式
6.1.4. 檢查紀錄是否被選取
6.1.5. 紀錄的選取及取消選取
6.1.6. 取得選取紀錄的數目
6.2. 雙擊紀錄
6.3. 右擊顯示的功能選單
7. 排序
7.1. GtkTreeSortable
7.2. GtkTreeModelSort
7.3. 排序及 Tree View 欄位的表頭
7.4. 大小寫不分的字串比較
8. 可編輯的儲存格
8.1. 可編輯的文字儲存格
8.1.1. 特殊儲存格的游標設定
8.2. 可編輯的雙態及單選按鈕儲存格
8.3. 可編輯的微調按鈕儲存格
9. 雜七雜八
9.1. 從Tree View 欄位元件取得欄位數目
9.2. 欄位擴展的能見度
9.2.1. 隱藏欄位擴展
9.2.2. 強迫欄位擴展能見
9.3. G點擊事件發生時取得 Cell Renderer
9.4. Glade 及 Tree Views
10. 拖曳 (DnD) **** 需要更新 ***
10.1. 從其他的視窗或元件從Tree View 拖曳紀錄-不相關的資料到另一個Tree View
10.2. 在Tree裡拖曳紀錄 **** TODO ***
10.3. 從一個Tree拖曳紀錄到另一個Tree **** TODO ***
11. 撰寫定製的模式
11.1. 定製模式何時有用?
11.2. 撰寫定製模式所涵括的內容?
11.3. 範例: 一個簡單定製的 List 模式
11.3.1. custom-list.h
11.3.2. custom-list.c
11.4. 從 List 到 Tree
11.5. 額外的介面, 這裡: GtkTreeSortable 介面
11.6. 使用中的範例: 定製的List Model 原始碼
11.6.1. custom-list.h
11.6.2. custom-list.c
11.6.3. main.c
12. 撰寫定製的 Cell Renderers
12.1. 使用中的範例: 進度顯示器的 Bar Cell Renderer
12.1.1. custom-cell-renderer-progressbar.h
12.1.2. custom-cell-renderer-progressbar.c
12.1.3. main.c
12.2. 別人已經寫過的Cell Renderers
13. 其他資源
14. 版權,許可聲明,鳴謝及更新歷史
14.1. 版權及許可聲明
14.2. 鳴謝
14.3. 更新紀錄

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *