Перейти к содержимому

InlineKeyboard

InlineKeyboard — билдер для создания inline-клавиатур (кнопок под сообщениями).

from edgebot import InlineKeyboard
kb = InlineKeyboard()

Добавляет кнопку в текущий ряд.

kb.button(
text: str,
callback_data: str | None = None,
url: str | None = None,
) -> InlineKeyboard
ПараметрОписание
textТекст на кнопке
callback_dataДанные для callback (взаимоисключающее с url)
urlURL-ссылка (взаимоисключающее с callback_data)

Завершает текущий ряд и начинает новый.

kb.row() -> InlineKeyboard

Добавляет ряды другой клавиатуры в конец текущей. Исходная клавиатура не мутируется.

kb.extend(other: InlineKeyboard) -> InlineKeyboard

Возвращает готовый reply_markup для отправки в Telegram API.

kb.build(prefix: str | None = None) -> dict

Правила обработки callback_data при наличии prefix:

callback_dataprefixРезультат
"toggle""prof""prof:toggle"
"toggle"None"toggle"
"/menu:home"любой"menu:home"
  • Относительный путь — присоединяется к prefix через :
  • Абсолютный путь (начинается с /) — prefix игнорируется, / срезается
  • URL-кнопки не затрагиваются
kb = InlineKeyboard()
kb.button("✅ Да", callback_data="yes")
kb.button("❌ Нет", callback_data="no")
kb.row()
kb.button("📖 Документация", url="https://edgebot.donvalerio.com")
await ctx.send("Вопрос?", reply_markup=kb.build())

Результат:

[ ✅ Да ] [ ❌ Нет ]
[ 📖 Документация ]