SectionModel#
Added in version 4.12.
- class SectionModel(*args, **kwargs)#
Implementations: FilterListModel
, FlattenListModel
, MapListModel
, MultiSelection
, NoSelection
, SingleSelection
, SliceListModel
, SortListModel
GtkSectionModel
is an interface that adds support for sections to list models.
A GtkSectionModel
groups successive items into so-called sections. List widgets
like GtkListView
and GtkGridView
then allow displaying section headers for
these sections by installing a header factory.
Many GTK list models support sections inherently, or they pass through the sections of a model they are wrapping.
When the section groupings of a model change, the model will emit the
sections_changed
signal by calling the
sections_changed
function. All sections in the given range
then need to be queried again.
The items_changed
signal has the same effect, all sections in
that range are invalidated, too.
Methods#
- class SectionModel
- get_section(position: int) tuple[int, int] #
Query the section that covers the given position. The number of items in the section can be computed by
out_end - out_start
.If the position is larger than the number of items, a single range from n_items to G_MAXUINT will be returned.
Added in version 4.12.
- Parameters:
position – the position of the item to query
- sections_changed(position: int, n_items: int) None #
This function emits the
sections_changed
signal to notify about changes to sections.It must cover all positions that used to be a section start or that are now a section start. It does not have to cover all positions for which the section has changed.
The
items_changed
implies the effect of thesections_changed
signal for all the items it covers.It is recommended that when changes to the items cause section changes in a larger range, that the larger range is included in the emission of the
items_changed
instead of emitting two signals.Added in version 4.12.
- Parameters:
position – the first changed item
n_items – the number of changed items
Signals#
Virtual Methods#
- class SectionModel
- do_get_section(position: int) tuple[int, int] #
Query the section that covers the given position. The number of items in the section can be computed by
out_end - out_start
.If the position is larger than the number of items, a single range from n_items to G_MAXUINT will be returned.
Added in version 4.12.
- Parameters:
position – the position of the item to query