Конструктор клавіатури#
Конструктор клавіатури допомагає динамічно генерувати розмітку
Примітка
Зауважте, що якщо у вас є статична розмітка, найкраще визначити її явно, а не використовувати конструктор, але якщо у вас є конфігурація динамічної розмітки, сміливо використовуйте конструктор на свій розсуд.
Приклад використання#
For example you want to generate inline keyboard with 10 buttons
builder = InlineKeyboardBuilder()
for index in range(1, 11):
builder.button(text=f"Set {index}", callback_data=f"set:{index}")
then adjust this buttons to some grid, for example first line will have 3 buttons, the next lines will have 2 buttons
builder.adjust(3, 2)
also you can attach another builder to this one
another_builder = InlineKeyboardBuilder(...)... # Another builder with some buttons
builder.attach(another_builder)
or you can attach some already generated markup
markup = InlineKeyboardMarkup(inline_keyboard=[...]) # Some markup
builder.attach(InlineKeyboardBuilder.from_markup(markup))
and finally you can export this markup to use it in your message
await message.answer("Some text here", reply_markup=builder.as_markup())
Reply keyboard builder has the same interface
Попередження
Note that you can’t attach reply keyboard builder to inline keyboard builder and vice versa
Клавіатура під повідомленням(Inline Keyboard)#
- class aiogram.utils.keyboard.InlineKeyboardBuilder(markup: List[List[InlineKeyboardButton]] | None = None)[source]#
Конструктор клавіатури під повідомленням успадковує всі методи від універсального конструктора
- button(text: str, url: str | None = None, login_url: LoginUrl | None = None, callback_data: str | CallbackData | None = None, switch_inline_query: str | None = None, switch_inline_query_current_chat: str | None = None, callback_game: CallbackGame | None = None, pay: bool | None = None, **kwargs: Any) aiogram.utils.keyboard.InlineKeyboardBuilder [source]
Додавання нової кнопки до розмітки
- as_markup() aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup [source]
Створення InlineKeyboardMarkup
- __init__(markup: List[List[InlineKeyboardButton]] | None = None) None [source]#
- add(*buttons: ButtonType) KeyboardBuilder[ButtonType] #
Додавання однієї або кількох кнопок до розмітки.
- Параметри:
buttons –
- Повертає:
- adjust(*sizes: int, repeat: bool = False) KeyboardBuilder[ButtonType] #
Налаштування раніше доданих кнопок до певних розмірів рядків.
By default, when the sum of passed sizes is lower than buttons count the last one size will be used for tail of the markup. If repeat=True is passed - all sizes will be cycled when available more buttons count than all sizes
- Параметри:
sizes –
repeat –
- Повертає:
- property buttons: Generator[ButtonType, None, None]#
Отримання плоского списку усіх кнопок
- Повертає:
- copy() InlineKeyboardBuilder [source]#
Робить повну копію поточного конструктора з розміткою
- Повертає:
- export() List[List[ButtonType]] #
Експортує налаштовану розмітку як список списків кнопок
>>> builder = KeyboardBuilder(button_type=InlineKeyboardButton) >>> ... # Add buttons to builder >>> markup = InlineKeyboardMarkup(inline_keyboard=builder.export())
- Повертає:
- classmethod from_markup(markup: InlineKeyboardMarkup) InlineKeyboardBuilder [source]#
Create builder from existing markup
- Параметри:
markup –
- Повертає:
- row(*buttons: ButtonType, width: int | None = None) KeyboardBuilder[ButtonType] #
Додає рядок у розмітку
Коли передано занадто багато кнопок, вони будуть розділені на багато рядків
- Параметри:
buttons –
width –
- Повертає: