允许用户重新排序GTK列表

时间:2014-03-03 09:10:06

标签: list gtk gtk2

我有一个项目列表,无论是样式文本格式还是圆柱形式,​​我希望用户能够自行重新排序。
(我不是说只是按列排序)

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

1 个答案:

答案 0 :(得分:1)

您可以使用GtkTreeView小部件。这个小部件中的元素可以随意重新排序,例如,您可以提供列表旁边的按钮,以提供移动元素的可能性,甚至允许拖放,这可能需要一些努力才能实现(编辑:at至少在你需要为重新排序设置规则的情况下)。可以为每个单元格设置不同的背景和前景色,甚至可以将图像和复选框打包到单元格中。 GtkTreeView可以与简单列表(用于数据存储的GtkListStore)或树状数据结构(GtkTreeStore)一起使用。

有一些教程,我发现其中一个非常有用的是this one.它也有很多例子,实际上是从官方GTK +站点链接的。您可能还想仔细查看GtkTreeSortable,您可以为其定义自己的排序函数。

Andrew Krause的书Foundations of GTK+ Development中也广泛涵盖了这个主题。它现在有点过时了(涵盖GTK 2),但到目前为止GTK内部的GtkTreeView小部件没有太多变化,所以内容仍然适用。