跳轉到內容

GTK+ 示例/樹形檢視

來自華夏公益教科書,開放書籍,開放世界

本章基於此作品 [1]

章節部分

[編輯 | 編輯原始碼]
  1. 列表和樹:GtkTreeView 小部件
  2. 元件:模型、渲染器、列、檢視
  3. 用於資料儲存的 GtkTreeModels:GtkListStore 和 GtkTreeStore
  4. 建立樹形檢視
  5. 將資料對映到螢幕:GtkTreeViewColumn 和 GtkCellRenderer
  6. 選擇、雙擊和上下文選單
  7. 排序
  8. 可編輯單元格
  9. 其他
  10. 拖放 (DnD) **** 需要修訂 ***
  11. 編寫自定義模型
  12. 編寫自定義單元格渲染器
  13. 其他資源

原始許可證(樹形檢視)

[編輯 | 編輯原始碼]

版權所有 (c) 2003-2004 Tim-Philipp Müller <tim at centricular dot net>

本教程可以以任何形式自由重新分發和修改,只要所有作者都獲得他們作品的應有信譽,並且所有非瑣碎的第三方更改都以文件中的方式清楚地標記,例如在修訂歷史中,或在文件中提到的外部和公開可訪問的地方(例如 CVS/SVN/git 儲存庫)。

原始版本來源

[編輯 | 編輯原始碼]

感謝 Axel C. 校對初稿,提供許多建議,並在最初向我介紹樹形檢視小部件時,讓我明白它的意義所在(那時候我還堅信移植到 Gtk+-2.x 是不必要的,Gtk+-1.2 應用程式看起來很好,而且亞里士多德已經說過了關於政治的一切)。

  1. Harring Figueiredo 解釋了 GtkListStore 和 GtkTreeStore 如何處理 pixbufs。
  2. Ken Rastatter 建議了一些額外的主題(甚至有完整的參考)。
  3. Andrej Prsa 和 Alan B. Canon 都向我傳送了一些建議,'taf2'、Massimo Mangoni 和其他人發現了一些錯別字。
  4. 非常感謝他們,當然還要感謝 kris 和 #gtk+ 中的其他人。

原始修訂歷史

[編輯 | 編輯原始碼]

14.3. 修訂歷史

2008 年 1 月 5 日

  • 更新了一些斷開的連結;刪除對已過時的外部單元格渲染器的引用,因為 Gtk 已添加了此類渲染器。

2005 年 6 月 5 日

  • 刪除 hello world 程式碼中不必要的 col = gtk_tree_view_column_new() (從遷移到便利函式遺留下來的)。

2005 年 2 月 3 日

  • 指出使用 gtk_tree_model_get() 檢索的 GObjects(如 GdkPixbufs)需要在使用後使用 g_object_unref(),因為 gtk_tree_model_get() 添加了引用。
  • 向使用 gtk_tree_view_get_path_at_pos() 的程式碼片段添加了顯式的 (gint) event->x double to int 轉換,以避免編譯器警告。

2004 年 9 月 9 日

  • 修復了樹形路徑解釋中的另一個錯誤:文字與圖片不符(s/movie clips/movie trailers/);(感謝 Benjamin Brandt 發現它)。

2004 年 8 月 6 日

  • 修復了樹形路徑解釋中的錯誤 (s/4th/5th/) (感謝 Andrew Kirillov 和 Benjamin Brandt 發現它)。

2004 年 4 月 30 日

  • 添加了 Hello World

2004 年 3 月 31 日

  • 修復了自定義列表程式碼中的致命錯別字:custom_list_init() 中的 g_assert() 應該是 ==,而不是 != (由 mmc 發現)。
  • 添加了指向 Owen Taylor 關於 GtkTreeView 拖放 API 的郵件的連結。

2004 年 1 月 24 日

  • 修復了程式碼示例中的錯別字(刪除第 n 行示例)(感謝 roel 發現它)。
  • 更改了“上下文選單”部分標題

2004 年 1 月 19 日

  • 擴充套件了關於 GtkTreeRowReferences 和刪除多行的部分。

2004 年 1 月 8 日

  • 添加了關於 Glade 和樹形檢視的微型部分
  • 在描述 GtkTreePath、GtkTreeIter 等的部分中添加了更多細節。
  • 重新格式化了文件結構:不再是一個帶有大量部分的單獨章節,而是多個章節(本教程太大了,無法成為 Gtk+ 教程的一部分);對章節和部分進行編號。
  • 擴充套件了關於樹形檢視列和單元格渲染器的部分,並借鑑了 Owen Taylor 的兩個圖表(來自 2003 年 GUADEC Gtk+ 教程幻燈片)。

2003 年 12 月 10 日

  • 添加了關於如何刪除單行或更具體地說,列表儲存的第 n 行的更多資訊
  • 添加了一個關於如何將圖示打包到樹形檢視中的簡短示例。

2003 年 10 月 28 日

  • 即使選擇設定為 GTK_SELECTION_NONE,可編輯單元格也能正常工作。刪除了說明相反內容的句子。

2003 年 10 月 23 日

  • 修復自定義模型 GtkTreeSortable 介面實現中的“跳躍”選擇。gtk_tree_model_rows_reordered() 似乎沒有像 API 引用中暗示的那樣工作(參見錯誤 #124790)
  • 添加了關於如何獲取按鈕點擊發生的單元格渲染器的部分
  • 添加了關於使用旋轉按鈕的可編輯單元格的部分(以及一個 CellRendererSpin 實現到示例中)

2003 年 10 月 10 日

  • 在 sortid 更改時,使自定義模型 GtkTreeSortable 實現發出“sort-column-changed”訊號
  • 修復了選擇函式部分中的程式碼錯別字;在“使整行變色或加粗”部分添加了關於規則提示的段落

2003 年 10 月 7 日

  • 重新格式化原始碼,使其在生成 ps/pdf 輸出時適合頁面
  • 添加了指向 PDF 和 docbook XML 版本的連結。
華夏公益教科書