感謝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總結