类
GtkSortListModel
说明 [src]
final class Gtk.SortListModel : GObject.Object
implements Gio.ListModel, Gtk.SectionModel {
/* No available fields */
}
一个GListModel
,按照一个 GtkSorter
来对底层模型中的元素进行排序。
该模型是一种稳定排序。如果两个项目根据排序器进行比较,那么首先在原始模型中出现的那个项目在排序后也会首先出现。请注意,如果您更改了排序器,则先前的顺序将不会影响新顺序。如果您需要这种功能,请考虑使用GtkMultiSorter
,并将其追加到排序器。
可以对模型进行设置,以进行增量排序,这样即使排序长列表也不会阻塞UI。有关详情,请参见gtk_sort_list_model_set_incremental()
。
GtkSortListModel
是一种通用模型,因此在排序时无法利用任何外部知识。如果您在GtkSortListModel
中遇到性能问题,强烈建议您编写自己的排序列表模型。
GtkSortListModel
允许对项目进行分部分排序。它实现了GtkSectionModel
,并且当GtkSortListModel:section-sorter
被设置时,它将使用该排序器对所有项目进行排序,并且与之比较相等的项目将被放入同一部分。然后,GtkSortListModel:sorter
将用于对各部分内的项目进行排序。
实例方法
Methods inherited from GListModel (5)
g_list_model_get_item
获取位于 position
的项目。
g_list_model_get_item_type
获取 list
中的项目类型。
g_list_model_get_n_items
获取 list
中的项目数。
g_list_model_get_object
获取位于 position
的项目。
g_list_model_items_changed
在 list
上发送 GListModel::items-changed
信号。
Methods inherited from GtkSectionModel (2)
gtk_section_model_get_section
查询包含给定位置的部分。部分中的项目数可通过 out_end - out_start
计算。
自:4.12
gtk_section_model_sections_changed
此函数发送 GtkSectionModel::sections-changed
信号来通知部分更改。
自:4.12
Signals
Signals inherited from GObject (1)
GObject::notify
当通过 g_object_set_property()、g_object_set() 等方式给对象的某个属性设置其值时,发送 notify 信号。
Signals inherited from GListModel (1)
GListModel::items-changed
每当从 list
中添加或删除项目时,都会发送此信号。在 position
处,删除了 removed
个项目,并按其位置添加了 added
个项目。