MapListModel

class MapListModel(**properties: Any)

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
classmethod new(model: ListModel | None = None, map_func: Callable[[...], Object] | None = None, *user_data: Any) MapListModel

Creates a new GtkMapListModel for the given arguments.

Parameters:
  • model – The model to map

  • map_func – map function

  • user_data – user data passed to map_func

Methods

class MapListModel
get_model() ListModel | None

Gets the model that is currently being mapped or None if none.

has_map() bool

Checks if a map function is currently set on self.

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 of self. 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

Properties

class MapListModel
props.has_map: bool

If a map is set for this model

props.item_type: type

The type of items. See get_item_type.

Added in version 4.8.

props.model: ListModel

The model being mapped.

props.n_items: int

The number of items. See get_n_items.

Added in version 4.8.