ListStore#
Superclasses: Object
Implemented Interfaces: ListModel
GListStore is a simple implementation of ListModel that stores
all items in memory.
It provides insertions, deletions, and lookups in logarithmic time with a fast path for the common case of iterating the list linearly.
Constructors#
Methods#
- class ListStore
- append(item: Object) None#
Appends
itemtostore.itemmust be of typeListStore:item-type.This function takes a ref on
item.Use
splice()to append multiple items at the same time efficiently.Added in version 2.44.
- Parameters:
item – the new item
- find(item: Object) tuple[bool, int]#
Looks up the given
itemin the list store by looping over the items until the first occurrence ofitem. Ifitemwas not found, thenpositionwill not be set, and this method will returnFalse.If you need to compare the two items with a custom comparison function, use
find_with_equal_func()with a customEqualFuncinstead.Added in version 2.64.
- Parameters:
item – an item
- find_with_equal_func(item, equal_func, *user_data)#
Looks up the given
itemin the list store by looping over the items and comparing them withequal_funcuntil the first occurrence ofitemwhich matches. Ifitemwas not found, thenpositionwill not be set, and this method will returnFalse.itemis always passed as second parameter toequal_func.Since GLib 2.76 it is possible to pass
NULLforitem.Added in version 2.64.
- Parameters:
item – an item
equal_func – A custom equality check function
user_data
- find_with_equal_func_full(item: Object | None, equal_func: Callable[[Any, Any, Any], bool], user_data: Any = None) tuple[bool, int]#
Like
find_with_equal_func()but with an additionaluser_datathat is passed toequal_func.itemis always passed as second parameter toequal_func.Since GLib 2.76 it is possible to pass
NULLforitem.Added in version 2.74.
- Parameters:
item – an item
equal_func – A custom equality check function
user_data – user data for
equal_func
- insert(position: int, item: Object) None#
Inserts
itemintostoreatposition.itemmust be of typeListStore:item-type or derived from it.positionmust be smaller than the length of the list, or equal to it to append.This function takes a ref on
item.Use
splice()to insert multiple items at the same time efficiently.Added in version 2.44.
- Parameters:
position – the position at which to insert the new item
item – the new item
- insert_sorted(item, compare_func, *user_data)#
Inserts
itemintostoreat a position to be determined by thecompare_func.The list must already be sorted before calling this function or the result is undefined. Usually you would approach this by only ever inserting items by way of this function.
This function takes a ref on
item.Added in version 2.44.
- Parameters:
item – the new item
compare_func – pairwise comparison function for sorting
user_data – user data for
compare_func
- remove(position: int) None#
Removes the item from
storethat is atposition.positionmust be smaller than the current length of the list.Use
splice()to remove multiple items at the same time efficiently.Added in version 2.44.
- Parameters:
position – the position of the item that is to be removed
- sort(compare_func, *user_data)#
Sort the items in
storeaccording tocompare_func.Added in version 2.46.
- Parameters:
compare_func – pairwise comparison function for sorting
user_data – user data for
compare_func
- splice(position: int, n_removals: int, additions: list[Object]) None#
Changes
storeby removingn_removalsitems and addingn_additionsitems to it.additionsmust containn_additionsitems of typeListStore:item-type.Noneis not permitted.This function is more efficient than
insert()andremove(), because it only emitsListModel::items-changed once for the change.This function takes a ref on each item in
additions.The parameters
positionandn_removalsmust be correct (ie:position+n_removalsmust be less than or equal to the length of the list at the time this function is called).Added in version 2.44.
- Parameters:
position – the position at which to make the change
n_removals – the number of items to remove
additions – the items to add