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:
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)