接口

GtkSectionModel

since: 4.12

描述 [src]

interface Gtk.SectionModel : Gio.ListModel

GtkSectionModel 是一个接口,它为列表模型添加了对节的支持。

GtkSectionModel 将连续的项组合成所谓的节。然后,GtkListViewGtkGridView 等列表小组件通过安装头工厂,允许显示这些节的头。

许多 GTK 列表模型本身就支持节,或传递它们作为包装模型的节。

当模型的节分组发生更改时,模型将通过调用 gtk_section_model_sections_changed() 函数发出 GtkSectionModel::sections-changed 信号。然后需要再次查询给定范围内的所有节。 GListModel::items-changed 信号具有相同的效果,该范围内的所有节也会失效。

自以下版本可用:4.12

先决条件

为了实现 SectionModel,您的类型必须从GListModel 继承。

实例方法

gtk_section_model_get_section

查询包含给定位置的节。节中的项数可通过 out_end - out_start 来计算。

since: 4.12

gtk_section_model_sections_changed

此函数发出 GtkSectionModel::sections-changed 信号以通知有关节的更改。

since: 4.12

信号

Gtk.SectionModel::sections-changed

model 中某些项的节起始状态发生改变时发出。

since: 4.12

接口结构

struct GtkSectionModelInterface {
  void (* get_section) (
    GtkSectionModel* self,
    guint position,
    guint* out_start,
    guint* out_end
  );
  
}

GtkSectionModel 接口的虚拟函数列表。不一定要实现任何函数,但除非实现了 GtkSectionModel::get_section(),整个模型将只是一个单一节。

接口成员
get_section
void (* get_section) (
    GtkSectionModel* self,
    guint position,
    guint* out_start,
    guint* out_end
  )
 

返回包含给定位置的节。如果位置超出项数,则返回从 n_items 到 G_MAXUINT 的单一范围。

虚拟方法

Gtk.SectionModel.get_section

查询包含给定位置的节。节中的项数可通过 out_end - out_start 来计算。

since: 4.12