Многоуровневая клавиатура как у BotFather в Телеграм для чат бота | multi-level inline keyboard

preview_player
Показать описание
#python 3.6
#telegram
#keyboard
_______________________

import telebot
from telebot import types
token = "your token"
bot = telebot.TeleBot(token)

def any_msg(message):
keyboardmain = types.InlineKeyboardMarkup(row_width=2)
first_button = types.InlineKeyboardButton(text="1button", callback_data="first")
second_button = types.InlineKeyboardButton(text="2button", callback_data="second")

def callback_inline(call):

keyboardmain = types.InlineKeyboardMarkup(row_width=2)
first_button = types.InlineKeyboardButton(text="1button", callback_data="first")
second_button = types.InlineKeyboardButton(text="2button", callback_data="second")

keyboard = types.InlineKeyboardMarkup()
rele1 = types.InlineKeyboardButton(text="1t", callback_data="1")
rele2 = types.InlineKeyboardButton(text="2t", callback_data="2")
rele3 = types.InlineKeyboardButton(text="3t", callback_data="3")
backbutton = types.InlineKeyboardButton(text="back", callback_data="mainmenu")

keyboard = types.InlineKeyboardMarkup()
rele1 = types.InlineKeyboardButton(text="another layer", callback_data="gg")
backbutton = types.InlineKeyboardButton(text="back", callback_data="mainmenu")

keyboard3 = types.InlineKeyboardMarkup()
button = types.InlineKeyboardButton(text="lastlayer", callback_data="ll")

if __name__ == "__main__":
Рекомендации по теме
Комментарии
Автор

В коде в описании ошибка небольшая, вокруг name должно быть по два подчеркивания

programmer
Автор

Очень годно! Только что была решена моя ночная проблема:) Спасибо большое!)

rrginc.
Автор

Имба. Я начал отчаиваться, но найдя тебя додумался до способа реализации. Спасибо

not_cannon
Автор

Наконец-то все стало понятно!
Спасибо!

voivashchenko
Автор

Четко и по делу. Именно так инструкции писать надо!

guitar_hedonist
Автор

от души душевно в душу, выручил очень

СергейВозлеев-мю
Автор

Можно сделать еще проще и удобнее:
Лямбда функция - это функция, в первую очередь. Туда можно и запихать проверку call.data.

call: call.data == 'something')
def function(call):

Так на каждую кнопку можно по отдельной функции создать и становится гораздо удобнее ориентироваться

praisethewhiterabbit
Автор

Боже, ты прямо спас, мало инфы по тому, как работают хендлеры в этой либе
Примеров тоже нет толком
Я вот, например, даже не подозревал, что callback query handler уже зациклен и сидел пердолился с написанием цикла вывода кнопок и каждый раз облом

Огромное спасибо

praisethewhiterabbit
Автор

Спасибо! Ты мне очень помог, от меня лайк :)

justproger
Автор

Хоть проблем у меня с этим не было, но все равно было очень интересно и годно. Лайк.

ОлексійДедюкін
Автор

Все это хорошо, а где в этом меню ввод сообщения тока с кнопками, вот это реально будит интересно😊

harrys_potter
Автор

Thank you! this helped me solve a problem I was stuck on

ProfessorHoffman
Автор

Ребята, если у вас не получается писать текст на русском, то сверху "import telebot" напишите "#_8_ coding: utf-8 _8_"(вместо "8" напишите "*") без ковычек! Благодорить не стоит!

thebrussicx
Автор

Автор, привет! Видео просто супер, нет слов, ты нереально помог, никаких вопросов нет ещё и код в описании вот прям супер.Хочу узнать только одно-название первой песни в видео, я посмотрел в шазаме что это traveler-hip hop ninja, но найти не смог, буду признателен если дадите ссылку, не обязательно на Ютуб, благодарю

ramiltaghiyev
Автор

Подскажите пожалуйста, с InlineKeyboardMarkup нельзя назначать следующий шаг bot.register_next_step_handler, тут просто работать с значениями call.data и с if / else?

arismiatov
Автор

А как сделать так чтобы при нажатии на кнопку он удалял нажатую кнопку которые к примеру в этом видео 1 2 3 и
новым сообщением отправлял картинку, под которой будет например кнопка назад вместе с отправленной картинкой или отдельным сообщением
И при нажатии кнопки назад он удалял отпраленную картинку и кнопку назад возвращая к главному меню
или новым сообщением оправлял главное меню, удаляя только кнопку назад???
Было бы очень здорово посмотреть такой пример.

Wladismann
Автор

Я возможно сейчас сотворю некропост, но можно вопросик? Что делает if __name__ == "__main__"? Я понимаю что это дословно значит если 1 == 2 то, но что означают сами имена?

РОБУСТА
Автор

а как на счет aiogram-pagination библиотеки?
Нужны примеры, не доганяется что-то вообще

kalinadv
Автор

А как сделать в таком коде ввод сообщения? .... нигде не могу найти

ПетрКонстантинов-ст
Автор

Как сделать так, чтобы бот в ответ отправлял файл? Например, после нажатия кнопки second из примера?

ЕкатеринаЛеонова-бщ