ScrollContainer#

A container that can display a layout larger than the area of the container, with overflow controlled by scroll bars.

../../../_images/scrollcontainer-cocoa.png

Usage#

import toga

content = toga.Box(children=[...])

container = toga.ScrollContainer(content=content)

Reference#

class toga.ScrollContainer(id=None, style=None, horizontal=True, vertical=True, on_scroll=None, content=None)#

Bases: Widget

Create a new Scroll Container.

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.

  • horizontal (bool) – Should horizontal scrolling be permitted?

  • vertical (bool) – Should horizontal scrolling be permitted?

  • on_scroll (callable | None) – Initial on_scroll handler.

  • content (Widget | None) – The content to display in the scroll window.

property content: Widget#

The root content widget displayed inside the scroll container.

property enabled: bool#

Is the widget currently enabled? i.e., can the user interact with the widget?

ScrollContainer widgets cannot be disabled; this property will always return True; any attempt to modify it will be ignored.

focus()#

No-op; ScrollContainer cannot accept input focus

property horizontal: bool#

Is horizontal scrolling enabled?

property horizontal_position: int#

The current horizontal scroll position.

If the value provided is negative, or greater than the maximum horizontal position, the value will be clipped to the valid range.

Returns:

The current horizontal scroll position.

Raises:

ValueError – If an attempt is made to change the horizontal position when horizontal scrolling is disabled.

property max_horizontal_position: int#

The maximum horizontal scroll position (read-only).

property max_vertical_position: int#

The maximum vertical scroll position (read-only).

property on_scroll: callable#

Handler to invoke when the user moves a scroll bar.

property position: tuple[int, int]#

The current scroll position, in the form (horizontal, vertical).

If the value provided for either axis is negative, or greater than the maximum position in that axis, the value will be clipped to the valid range.

If scrolling is disabled in either axis, the value provided for that axis will be ignored.

property vertical: bool#

Is vertical scrolling enabled?

property vertical_position: int#

The current vertical scroll position.

If the value provided is negative, or greater than the maximum vertical position, the value will be clipped to the valid range.

Returns:

The current vertical scroll position.

Raises:

ValueError – If an attempt is made to change the vertical position when vertical scrolling is disabled.