Конструктор клавиатуры

Конструктор клавиатуры кпомагае динамично генерувати розмитку

Примечание

Заметьте, что если в вас является статична розмитка, лучше всего определить её явно, а не использовать конструктор, но если в вас является конфигурация динамичнои розмитки, смиливо используйте конструктор на свий розсуд.

Пример использования

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

Конструктор клавиатуры кпомагае динамично генерувати розмитку

Предупреждение

Note that you can’t attach reply keyboard builder to inline keyboard builder and vice versa

Клавиатура под повикмленням(Inline Keyboard)

class litegram.utils.keyboard.InlineKeyboardBuilder(markup: list[list[InlineKeyboardButton]] | None = None)[исходный код]

Конструктор клавиатуры под повидомленням успадковуе все методы от универсального конструктора

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) litegram.utils.keyboard.InlineKeyboardBuilder[исходный код]

Додавання новои кнопки к розмитки

as_markup() litegram.types.inline_keyboard_markup.InlineKeyboardMarkup[исходный код]

Создания InlineKeyboardMarkup

__init__(markup: list[list[InlineKeyboardButton]] | None = None) None[исходный код]
add(*buttons: ButtonType) KeyboardBuilder[ButtonType]

Додавання одниеи или килькох кнопок к розмитки.

Параметры:

buttons

Результат:

adjust(*sizes: int, repeat: bool = False) KeyboardBuilder[ButtonType]

Налаштування раньше кданных кнопок к певних розмирив рядкив.

За замовчуванням, когда сума переданных розмирив менша за килькисть кнопок, для хвоста розмитки будет використано останний переданный розмир. Если передано параметр repeat=True, уси розмири будут повторюватися, поки является доступни кнопки

Параметры:
  • sizes

  • repeat

Результат:

property buttons: Generator[ButtonType]

Отримання плоского списку всех кнопок

Результат:

copy() InlineKeyboardBuilder[исходный код]

Делает повну копию текущего конструктора с разметкой

Результат:

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[исходный код]

Create builder from existing markup

Параметры:

markup

Результат:

row(*buttons: ButtonType, width: int | None = None) KeyboardBuilder[ButtonType]

Додае строку в розмитку

Когда передано слишком много кнопок, они будут роздилени на много рядкив

Параметры:
  • buttons

  • width

Результат:

Клавиатура ответов

class litegram.utils.keyboard.ReplyKeyboardBuilder(markup: list[list[KeyboardButton]] | None = None)[исходный код]

Конструктор клавиатуры ответов успадковуе все методы от универсального конструктора

button(text: str, request_contact: bool | None = None, request_location: bool | None = None, request_poll: KeyboardButtonPollType | None = None, **kwargs: Any) litegram.utils.keyboard.ReplyKeyboardBuilder[исходный код]

Додавання новои кнопки к розмитки

as_markup() litegram.types.reply_keyboard_markup.ReplyKeyboardMarkup[исходный код]

Создания ReplyKeyboardMarkup

__init__(markup: list[list[KeyboardButton]] | None = None) None[исходный код]
add(*buttons: ButtonType) KeyboardBuilder[ButtonType]

Додавання одниеи или килькох кнопок к розмитки.

Параметры:

buttons

Результат:

adjust(*sizes: int, repeat: bool = False) KeyboardBuilder[ButtonType]

Налаштування раньше кданных кнопок к певних розмирив рядкив.

За замовчуванням, когда сума переданных розмирив менша за килькисть кнопок, для хвоста розмитки будет використано останний переданный розмир. Если передано параметр repeat=True, уси розмири будут повторюватися, поки является доступни кнопки

Параметры:
  • sizes

  • repeat

Результат:

property buttons: Generator[ButtonType]

Отримання плоского списку всех кнопок

Результат:

copy() ReplyKeyboardBuilder[исходный код]

Делает повну копию текущего конструктора с разметкой

Результат:

export() list[list[ButtonType]]

Експортуе налаштовану розмитку как список спискив кнопок

>>> builder = KeyboardBuilder(button_type=InlineKeyboardButton)
>>> ... # Add buttons to builder
>>> markup = InlineKeyboardMarkup(inline_keyboard=builder.export())
Результат:

classmethod from_markup(markup: ReplyKeyboardMarkup) ReplyKeyboardBuilder[исходный код]

Create builder from existing markup

Параметры:

markup

Результат:

row(*buttons: ButtonType, width: int | None = None) KeyboardBuilder[ButtonType]

Додае строку в розмитку

Когда передано слишком много кнопок, они будут роздилени на много рядкив

Параметры:
  • buttons

  • width

Результат: