GTK+ 2.0 Tree View 教学

Tim-Philipp Muller

这是一份关于透过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. 更新纪录

1 則留言

Comments are closed.