2010-04-16 238 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

相关问题