1

我正在尝试按非字母顺序对 GTK 树视图中的一列数据进行排序。我似乎无法在 GTK+ 库中找到无法执行此类操作的函数。

这里有人知道这样做的方法吗?

更新:

以下是我当前尝试使用的代码:

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);
4

1 回答 1

2

查看GtkTreeSortable界面,它允许您设置自定义排序功能。

请注意,常用的标准GtkListStore模型实现了 GtkTreeSortable。

您可能还需要调用gtk_tree_sortable_set_sort_column_id()以选择要排序的列。这使用了“排序列id”的概念,它与列索引不同。当您创建它们时,您需要在各个 GtkTreeViewColumns 上设置正确的列 ID,使用gtk_tree_view_column_set_sort_column_id()

本教程可能是很好的阅读材料,可以更好地理解所涉及的概念。

于 2010-04-16T12:25:50.437 回答