GtkMapListModel

描述 [src]

final class Gtk.MapListModel : GObject.Object
  implements Gio.ListModel, Gtk.SectionModel {
  /* No available fields */
}

GtkMapListModel 将列表模型中的项目映射到不同的项目。

GtkMapListModel 使用 GtkMapListModelMapFunc

示例:创建一个 GtkEventControllers 列表

static gpointer
map_to_controllers (gpointer widget,
                    gpointer data)
{
  gpointer result = gtk_widget_observe_controllers (widget);
  g_object_unref (widget);
  return result;
}

widgets = gtk_widget_observe_children (widget);

controllers = gtk_map_list_model_new (widgets,
                                      map_to_controllers,
                                      NULL, NULL);

model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
                                    controllers);

只要不再需要映射的对象,GtkMapListModel 就会尝试丢弃它们,并在必要时重新创建。

GtkMapListModel 传递来自底层模型的部分。

层级

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

祖先

构造函数

gtk_map_list_model_new

为给定参数创建一个新的 GtkMapListModel

实例方法

gtk_map_list_model_get_model

获取当前正在映射的模型,如果不存在,则获取 NULL

gtk_map_list_model_has_map

检查当前是否已在 self 上设置映射函数。

gtk_map_list_model_set_map_func

设置用于映射项目的函数。

gtk_map_list_model_set_model

设置要映射的 模型。

GObject (43) 继承的方法

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

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 信号。

GtkSectionModel (2) 继承的方法
gtk_section_model_get_section

查询涵盖给定位置的部分。可以通过 out_end - out_start 计算部分中的项目数。

since: 4.12

gtk_section_model_sections_changed

此函数发出 GtkSectionModel::sections-changed 信号,以通知部分的更改。

since: 4.12

属性

Gtk.MapListModel:has-map

如果为此模型设置了映射。

Gtk.MapListModel:item-type

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

since: 4.8

Gtk.MapListModel:model

正在映射的 模型。

Gtk.MapListModel:n-items

项目数。请参阅 g_list_model_get_n_items()

since: 4.8

信号

GObject (1) 继承的信号
GObject::notify

当对象的一个属性通过 g_object_set_property()、g_object_set() 等设置值时,在此对象上会发出 notify 信号。

GListModel (1) 继承的信号
GListModel::items-changed

每当向 list 中添加或从中移除项目时,都会发出此信号。在 position 处,删除了 removed 项,并用 added 项取而代之。

GtkSectionModel (1) 继承的信号
GtkSectionModel::sections-changed

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

since: 4.12

类结构

struct GtkMapListModelClass {
  GObjectClass parent_class;
  
}

无可用描述。

类成员
parent_class: GObjectClass

无可用描述。