2010-04-16 239 views
1

我正在嘗試按字母順序對GTK樹形視圖中的一列數據進行排序。我似乎無法在GTK +庫中找到一個不能做這樣的事情的函數。以非字母順序對GtkTreeView中的數據進行排序?

有沒有人知道這樣做的方法?

UPDATE:

下面是代碼即時通訊目前正在使用:

column = gtk_tree_view_column_new(); 

gtk_tree_view_column_set_title(column, "Memory"); 

gtk_tree_view_column_set_resizable(column, TRUE); 
gtk_tree_view_column_set_reorderable(column, TRUE); 
gtk_tree_view_column_set_sort_indicator(column, TRUE); 
/********************************************************** 
gtk_tree_view_column_set_sort_column_id(column, 3); 
gtk_tree_sortable_set_sort_column_id(column, 3, GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID); 
**********************************************************/ 

gtk_tree_view_append_column(GTK_TREE_VIEW(rendered_view), column); 

c_renderer = gtk_cell_renderer_text_new(); 

gtk_tree_view_column_pack_start(column, c_renderer, TRUE); 

gtk_tree_view_column_add_attribute(column, c_renderer, "text", MEMORY); 

回答

2

GtkTreeSortable接口,它允許您設置自定義排序功能。

請注意,常用的標準GtkListStore模型實現了GtkTreeSortable。

您可能還需要致電gtk_tree_sortable_set_sort_column_id()以選擇要排序的列。這使用「排序列標識」的概念,它與列索引不同。您需要使用gtk_tree_view_column_set_sort_column_id()在創建它們時在各個GtkTreeViewColumns上設置適當的列標識。

This tutorial可能是很好的閱讀,以更好地理解所涉及的概念。

+0

可以將GtkTreeSortable與gtk_tree_view_solumn_set_sort_column_id結合使用嗎? – paultop6 2010-04-16 12:32:49

+0

@ paultop6:是的,這就是您如何指示要排序的列。 – unwind 2010-04-16 13:15:50

+0

@unwind:試圖編譯即時通訊錯誤,你不能將GtkTreeViewColumn轉換爲GtkTreeSortable。我用有問題的部分代碼更新了這個問題。註釋掉的部分與這個問題有關。有什麼辦法把GtkTreeViewColumn轉換成GtkTreeSortable? – paultop6 2010-04-16 13:36:10

相關問題