InlineKeyboard
InlineKeyboard — билдер для создания inline-клавиатур (кнопок под сообщениями).
Конструктор
Заголовок раздела «Конструктор»from edgebot import InlineKeyboard
kb = InlineKeyboard().button(text, callback_data, url)
Заголовок раздела «.button(text, callback_data, url)»Добавляет кнопку в текущий ряд.
kb.button( text: str, callback_data: str | None = None, url: str | None = None,) -> InlineKeyboard| Параметр | Описание |
|---|---|
text | Текст на кнопке |
callback_data | Данные для callback (взаимоисключающее с url) |
url | URL-ссылка (взаимоисключающее с callback_data) |
Завершает текущий ряд и начинает новый.
kb.row() -> InlineKeyboard.extend(other)
Заголовок раздела «.extend(other)»Добавляет ряды другой клавиатуры в конец текущей. Исходная клавиатура не мутируется.
kb.extend(other: InlineKeyboard) -> InlineKeyboard.build(prefix)
Заголовок раздела «.build(prefix)»Возвращает готовый reply_markup для отправки в Telegram API.
kb.build(prefix: str | None = None) -> dictПравила обработки callback_data при наличии prefix:
| callback_data | prefix | Результат |
|---|---|---|
"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())Результат:
[ ✅ Да ] [ ❌ Нет ][ 📖 Документация ]