MapModel[T, U]
from slint import MapModelMapModel is a read-only Model that provides the rows of a source model,
each passed through a map function.
The MapModel follows the changes of the source model.
names = slint.ListModel([("Hans", "Emil"), ("Max", "Mustermann")])full_names = slint.MapModel(names, lambda name: f"{name[1]}, {name[0]}")assert full_names[0] == "Emil, Hans"Alternatively, subclass MapModel and implement map_row:
class FullNames(slint.MapModel[tuple[str, str], str]): def map_row(self, row_data: tuple[str, str]) -> str: return f"{row_data[1]}, {row_data[0]}"
full_names = FullNames(names)Bases: _AdapterModel[U]
Properties
Section titled “Properties”source_model
Section titled “source_model”source_modelMethods
Section titled “Methods”map_row
Section titled “map_row”map_row(row_data: T) -> UReturns the row of this model for row_data, a row of the source model.
Re-implement this method in a sub-class that doesn’t pass a map function
to the constructor.
notify_row_changed
Section titled “notify_row_changed”Call this method from a sub-class to notify the views that a row has changed.
notify_row_removed
Section titled “notify_row_removed”Call this method from a sub-class to notify the views that
count rows have been removed starting at row.
notify_row_added
Section titled “notify_row_added”Call this method from a sub-class to notify the views that
count rows have been added starting at row.
set_row_data
Section titled “set_row_data”Call this method on mutable models to change the data for the given row. The UI will also call this method when modifying a model’s data. Re-implement this method in a sub-class to handle the change.
row_count
Section titled “row_count”row_count() -> introw_data
Section titled “row_data”row_data(row: int) -> T | Nonepush_row
Section titled “push_row”push_row(value: T) -> NoneAdd a new row to the model with the provided value.
The default implementation calls insert_row with the row count.
remove_row
Section titled “remove_row”Remove the row at the given index.
Raises an exception when the model rejects the modification.
The default implementation raises NotImplementedError. A model that
supports removing rows should also call notify_row_removed.
insert_row
Section titled “insert_row”Insert a new row at the given index.
Raises an exception when the model rejects the modification.
The default implementation raises NotImplementedError. A model that
supports inserting rows should also call notify_row_added.
© 2026 SixtyFPS GmbH