Toggle

Toggle is a button that switches between elements when clicked. Works like a Radio.

Code example:

@dataclass
class Fruit:
    id: str
    name: str
    emoji: str


async def get_fruits(**kwargs):
    return {
        "fruits": [
            Fruit("apple_a", "Apple", "🍏"),
            Fruit("banana_b", "Banana", "🍌"),
            Fruit("orange_o", "Orange", "🍊"),
            Fruit("pear_p", "Pear", "🍐"),
        ],
    }


dialog = Dialog(
    Window(
        Const("Toggle widget"),
        Toggle(
            Format("{item.emoji} {item.name}"),
            id="radio",
            items="fruits",
            item_id_getter=lambda fruit: fruit.id,
        ),
        state=ToggleExampleSG.START,
        getter=get_fruits,
    ),
)

Result:

../../../_images/toggle.gif

Classes

class aiogram_dialog.widgets.kbd.select.OnItemStateChanged(*args, **kwargs)
abstract async __call__(event, select, dialog_manager, data)

Call self as a function.

Parameters:
  • event (CallbackQuery | Message | DialogUpdateEvent | ChatMemberUpdated | ChatJoinRequest)

  • select (ManagedT)

  • dialog_manager (DialogManager)

  • data (T)

class aiogram_dialog.widgets.kbd.select.OnItemClick(*args, **kwargs)
abstract async __call__(event, select, dialog_manager, data, /)

Call self as a function.

Parameters:
  • event (CallbackQuery)

  • select (ManagedT)

  • dialog_manager (DialogManager)

  • data (T)

class aiogram_dialog.widgets.kbd.select.Toggle(text, id, item_id_getter, items, type_factory=<class 'str'>, on_click=None, on_state_changed=None, when=None)
Parameters:
  • text (Text)

  • id (str)

  • item_id_getter (Callable[[Any], str | int])

  • items (str | Callable[[Dict], Sequence] | MagicFilter | Sequence)

  • type_factory (Callable[[str], T])

  • on_click (OnItemClick[ManagedToggle[T], T] | WidgetEventProcessor | None)

  • on_state_changed (OnItemStateChanged[ManagedToggle[T], T] | WidgetEventProcessor | None)

  • when (str | Callable)

__init__(text, id, item_id_getter, items, type_factory=<class 'str'>, on_click=None, on_state_changed=None, when=None)
Parameters:
  • text (Text)

  • id (str)

  • item_id_getter (Callable[[Any], str | int])

  • items (str | Callable[[Dict], Sequence] | MagicFilter | Sequence)

  • type_factory (Callable[[str], T])

  • on_click (OnItemClick[ManagedToggle[T], T] | WidgetEventProcessor | None)

  • on_state_changed (OnItemStateChanged[ManagedToggle[T], T] | WidgetEventProcessor | None)

  • when (str | Callable | None)

class aiogram_dialog.widgets.kbd.ManagedToggle(widget, manager)
Parameters:
  • widget (W)

  • manager (DialogManager)

get_checked()

Get an id of selected item.

Return type:

T | None

is_checked(item_id)

Get if specified item is checked.

Parameters:

item_id (T)

Return type:

bool

async set_checked(item_id)

Get set which item is selected.

Parameters:

item_id (T)