2014-03-03 34 views
0

我有一個項目列表,無論是樣式文本格式還是圓柱形格式,我都希望用戶能夠自行重新排序。
(並且我不是說只是按列進行排序)允許用戶重新排列GTK列表

是否有支持此功能或至少是常用設置的小部件?

回答

1

您可以使用GtkTreeView小部件。這個小部件內部的元素可以隨意重新排序,例如,您可以在列表旁邊提供按鈕,以提供在元素間移動的可能性,甚至允許拖放操作,但這可能需要一些努力才能實現(編輯:at至少對於需要爲重新排序設置規則的情況)。可以爲每個單元格設置不同的背景和前景色,甚至可以將圖像和複選框打包到單元格中。 GtkTreeView可以與簡單列表(用於數據存儲的GtkListStore)或樹狀數據結構(GtkTreeStore)一起使用。

這裏有一些教程,其中一個我覺得非常有用,首先是this one.它也有很多例子,實際上鍊接到官方GTK +網站。您可能還想仔細看看GtkTreeSortable,您可以爲其定義自己的排序功能。

安德魯克勞斯的書Foundations of GTK+ Development也廣泛地涉及了這個話題。現在有點過時(涵蓋GTK 2),但GTK內部的GtkTreeView小部件目前還沒有太多變化,所以內容仍然適用。

+0

要使用拖放操作重新排列樹視圖,只需調用[gtk_tree_view_set_reorderable()](https://developer.gnome.org/gtk3/stable/GtkTreeView.html#gtk-tree-view-set-reorderable) –

+0

如果重新排序可以任意完成,然後確定 - 我將編輯我的帖子以清楚說明。 –