MapListModel#
Superclasses: Object
Implemented Interfaces: ListModel
, SectionModel
A GtkMapListModel
maps the items in a list model to different items.
GtkMapListModel
uses a Gtk.MapListModelMapFunc
.
Example: Create a list of 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
will attempt to discard the mapped objects as soon as
they are no longer needed and recreate them if necessary.
GtkMapListModel
passes through sections from the underlying model.
Constructors#
- class MapListModel
Methods#
- class MapListModel
-
- set_map_func(map_func: Callable[[...], Object] | None = None, *user_data: Any) None #
Sets the function used to map items.
The function will be called whenever an item needs to be mapped and must return the item to use for the given input item.
Note that
GtkMapListModel
may call this function multiple times on the same item, because it may delete items it doesn’t need anymore.GTK makes no effort to ensure that
map_func
conforms to the item type ofself
. It assumes that the caller knows what they are doing and the map function returns items of the appropriate type.- Parameters:
map_func – map function
user_data – user data passed to
map_func
- set_model(model: ListModel | None = None) None #
Sets the model to be mapped.
GTK makes no effort to ensure that
model
conforms to the item type expected by the map function. It assumes that the caller knows what they are doing and have set up an appropriate map function.- Parameters:
model – The model to be mapped