DetailedList#

Availability (Key)#

macOS

GTK

Windows

iOS

Android

Web

Usage#

Reference#

class toga.widgets.detailedlist.DetailedList(id=None, data=None, on_delete=None, on_refresh=None, on_select=None, style=None, factory=None)#

A widget to hold data in a list form. Rows are selectable and can be deleted. An updated function can be invoked by pulling the list down.

Parameters:
  • id (str) – An identifier for this widget.

  • data (list of dict) – List of dictionaries with required ‘icon’, ‘title’, and ‘subtitle’ keys as well as optional custom keys to store additional info like ‘pk’ for a database primary key (think Django ORM)

  • on_delete (Callable) – Function that is invoked on row deletion.

  • on_refresh (Callable) – Function that is invoked on user initialized refresh.

  • on_select (Callable) – Function that is invoked on row selection.

  • style (Style) – An optional style object. If no style is provided then a new one will be created for the widget.

Examples

>>> import toga
>>> def selection_handler(widget, row):
>>>     print('Row {} of widget {} was selected.'.format(row, widget))
>>>
>>> dlist = toga.DetailedList(
...     data=[
...         {
...             'icon': '',
...             'title': 'John Doe',
...             'subtitle': 'Employee of the Month',
...             'pk': 100
...          }
...      ],
...      on_select=selection_handler
... )

Create a base Toga widget.

This is an abstract base class; it cannot be instantiated.

Parameters:
  • id – The ID for the widget.

  • style – A style object. If no style is provided, a default style will be applied to the widget.

MIN_HEIGHT = 100#
MIN_WIDTH = 100#
property data#

The data source of the widget. It accepts data in the form of list of dict or ListSource

Returns:

Returns a (ListSource).

property on_delete#

The function invoked on row deletion. The delete handler must accept two arguments. The first is a ref. to the widget and the second the row that is about to be deleted.

Examples

>>> def delete_handler(widget, row):
>>>     print('row ', row, 'is going to be deleted from widget', widget)
Returns:

The function that is invoked when deleting a row.

property on_refresh#

Returns: The function to be invoked on user initialized refresh.

property on_select#

The handler function must accept two arguments, widget and row.

Returns:

The function to be invoked on selecting a row.

scroll_to_bottom()#

Scroll the view so that the bottom of the list (last row) is visible.

scroll_to_row(row)#

Scroll the view so that the specified row index is visible.

Parameters:

row – The index of the row to make visible. Negative values refer to the nth last row (-1 is the last row, -2 second last, and so on)

scroll_to_top()#

Scroll the view so that the top of the list (first row) is visible.

property selection#

The current selection.

A value of None indicates no selection.