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将用于对各部分内的项目进行排序。

层级

hierarchy this GtkSortListModel implements_0 GListModel this--implements_0 implements_1 GtkSectionModel this--implements_1 ancestor_0 GObject ancestor_0--this

祖先

构造函数

gtk_sort_list_model_new

创建一个新的排序列表模型,使用sortermodel进行排序。

实例方法

gtk_sort_list_model_get_incremental

返回是否启用了增量排序。

gtk_sort_list_model_get_model

获取当前排序的模型或者若没有则返回NULL

gtk_sort_list_model_get_pending

估计正在进行的排序操作的进度。

gtk_sort_list_model_get_section_sorter

获取用于将self中的项目按部分进行排序的部分排序器。

自:4.12

gtk_sort_list_model_get_sorter

获取用于对self进行排序的排序器。

gtk_sort_list_model_set_incremental

设置排序模型以执行增量排序。

gtk_sort_list_model_set_model

设置要排序的模型。

gtk_sort_list_model_set_section_sorter

self 上设置新的部分排序器。

自:4.12

gtk_sort_list_model_set_sorter

self 上设置新的排序器。

Methods inherited from GObject (43)

有关方法的完整列表,请参阅 GObject

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

Properties

Gtk.SortListModel:incremental

如果该模型应该增量排序项目。

Gtk.SortListModel:item-type

项目的类型。请参阅 g_list_model_get_item_type()

since: 4.8

Gtk.SortListModel:model

正在排序的模型。

Gtk.SortListModel:n-items

项目数。请参阅 g_list_model_get_n_items()

since: 4.8

Gtk.SortListModel:pending

剩余未排序项目的估计。

Gtk.SortListModel:section-sorter

对此模型的部分排序器(如果有设置)。

自:4.12

Gtk.SortListModel:sorter

此模型的排序器。

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 个项目。

Signals inherited from GtkSectionModel (1)
GtkSectionModel::sections-changed

model 中某些项目的章节开始状态发生更改时发出。

自:4.12

Class structure

struct GtkSortListModelClass {
  GObjectClass parent_class;
  
}

无描述。

Class members
parent_class: GObjectClass

无描述。