感谢Lars Wirzenius为PyGtk编写的老版本的教程,这里修改了教程仅仅是对Gtk+和PHP-GTK 2对接,小牛仔翻译本教程到 PHP-GTK 2开发的技术文档。
Gtk+ 2.0版本介绍了它的3个基本的树和列表元件。1.0版本拥有GtkList和GtkTree,1.2版本拥有GtkCList和GtkCTree,现在2.0版本拥有GtkTreeView,它既是一个列表也是一个树。每一个版本,这些元件的功能和用户体验在不断地提高。
GtkTreeView使用 Model/View/Controller的方法。这意味着代码被划分为一个数据结构,代表用户数据(模型Model),显示数据和用户之间相互影响(视图View),一些将事物友好连接起来的逻辑代码(控制器Controller)。模型继承至GtkTreeModel(实际上,类继承至该接口),带有一些助手的GtkTreeView视图,以及用户自定义代码的控制器。
这听起来是非常没有必要的复杂,但是复杂是相对的,然后这个方法实际上简化了程序结构。举个例子,我们将相同的数据(比如 Model)按不同的方式或者不同窗口放置在一起。比如,一个程序员的编辑器:相同的源代码也许在同一时间被放置在不同的窗口,如果一个窗口的改变了,那么其它的也需要被改变。因此将text表单与窗口分离存放相对将text表单存放在每个窗口是非常明智的选择。
这篇文章的示例的程序将允许用户管理一个文件夹树。为了保持代码简洁,这些文件夹是虚拟的,不是文件系统真实存在的。实际上这个例子是Lodju的衍生品,其中的文件夹是与文件系统没有关联的。
Gtk+2.0的官方GtkTreeView引用文档API应该与这篇教程一起被同时阅读,尽管它们在细节上有些不同。
感谢为Gtk+发展做出贡献的的IRC组织的鼓励和反馈。
- 前言
- 安装打包发行
- 安装方法
- 打包 exe
- 不用设置环境变量打包
- 发布 helloworld 软件
- 调试以及替换图标
- Helloworld 分析
- PHP-GTK Hello world 高级程序
- PHP-GTK Hello Glade
- 加载 glade 文件
- 加载 .glade 文件的一部分
- GTK、Pango 和支持库
- PHP-GTK布局排版
- 盒子 GtkHBox 和 GtkVBox
- 使用 GtkTable 实现表格状布局
- 固定布局
- PHP-GTK面向对象编程
- 更加复杂的例子
- PHP-GTK 面向对象概述
- PHP-GTK 信号句柄
- 信号
- 回调和信号句柄
- 连接信号和信号句柄
- 事件
- 总结
- GtkTreeView 教程(基础)
- 模型: GtkTreeModel 和 GtkTreeStore
- 视图: GtkTreeView, GtkTreeViewColumn, GtkCellRenderer
- PHP-GTK全貌
- 类继承关系
- PHP-GTK 2 中键的符号化名称
- PHP-GTK 类列表
- PHP-GTK 函数和方法
- PHP-GTK 字段和属性
- PHP-GTK 信号
- PHP-GTK 枚举和标志值
- PHP-GTK顶层
- GtkWindow顶层
- GtkDialog顶层
- GtkAboutDialog顶层
- GtkColorSelectionDialog顶层
- GtkFileChooserDialog顶层
- GtkFontSelectionDialog顶层
- GtkInputDialog顶层
- GtkMessageDialog顶层
- GtkRecentChooserDialog顶层
- GtkAssistant顶层
- PHP-GTK容器
- GtkHBox容器
- GtkVBox容器
- GtkTable容器
- GtkNotebook容器
- GtkFrame容器
- GtkAspectFrame容器
- GtkMenuBar容器
- GtkToolbar容器
- GtkHPaned容器
- GtkVPaned容器
- GtkHButtonBox容器
- GtkVButtonBox容器
- GtkLayout容器
- GtkFixed容器
- GtkEventBox容器
- GtkExpander容器
- GtkViewport容器
- GtkScrolledWindow容器
- GtkAlignment容器
- PHP-GTK控制和显示
- GtkButton按钮
- GtkToggleButton双态按钮
- GtkCheckButton复选按钮
- GtkSpinButton Spin按钮
- GtkRadioButton单选按钮
- GtkFileChooserButton文件选择按钮
- GtkColorButton颜色按钮
- GtkFontButton字体按钮
- GtkLinkButton衔接按钮
- GtkImage图像
- GtkLabel标签
- GtkAccelLabel快捷键列表
- GtkEntry文本条目
- GtkTextView文本视图
- GtkHScale水平比例
- GtkVScale垂直比例
- GtkHScrollbar水平滚动条
- GtkVScrollbar垂直滚动条
- GtkComboBox组合框
- GtkComboBoxEntry组合框条目
- GtkProgressBar进度条
- GtkTreeView树视图
- GtkIconView图标视图
- GtkHandleBox可移动的框
- GtkStatusbar状态栏
- GtkCalendar日历
- GtkMenu弹出式菜单
- GtkHSeparator水平分割线
- GtkVSeparator垂直分割线
- GtkArrow箭头
- GtkDrawingArea绘图区域
- GtkRecentChooserWidget最近选择器
- GtkFileChooserWidget文件选择元件
- Gtk+ 过时元件
- APP开发基础
- 元件和对象
- 父元件和子元件
- APP开发事件和信号
- 事件和信号
- 监听新的事件
- APP开发启动并运行
- 窗口和其它顶级元件
- 窗口的位置和尺寸
- 模态窗口
- 窗口标题
- Gtk循环
- PHP-GTK总结