Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
import telebot from telebot import types token = '................................' bot = telebot.TeleBot(token) @bot.message_handler(commands=['start']) # ГЛАВНОЕ МЕНЮ def main(message): st_menu = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton('Каталог', callback_data='main.catalog') st_menu.row(btn1) btn2 = types.InlineKeyboardButton('Частые вопросы', callback_data='main.questions') st_menu.row(btn2) bot.send_message(message.chat.id, "..................", reply_markup = st_menu) @bot.callback_query_handler(func=lambda call: call.data.startswith('main.')) # ОБРАБОТКА КНОПОК ГЛАВНОГО МЕНЮ def call_start_menu(call): # КАТАЛОГ if call.data == 'main.catalog': cat_menu = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton('Товар 1', callback_data='catalog.01') btn2 = types.InlineKeyboardButton('Товар 2', callback_data='catalog.02') cat_menu.row(btn1, btn2) btn3 = types.InlineKeyboardButton('В главное меню', callback_data='back.home') cat_menu.row(btn3) bot.send_message(call.message.chat.id, 'Выбери мужские или женские:', reply_markup=cat_menu) # ЧАСТЫЕ ВОПРОСЫ if call.data == 'main.questions': quest_menu = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton('............', callback_data='questions.quest1') btn2 = types.InlineKeyboardButton('..........', callback_data='questions.quest2') quest_menu.row(btn1, btn2) btn5 = types.InlineKeyboardButton('В главное меню', callback_data='back.home') quest_menu.row(btn5) bot.send_message(call.message.chat.id, 'Выбери вопрос:', reply_markup=quest_menu) @bot.callback_query_handler(func=lambda call: call.data.startswith('questions.')) # ОБРАБОТКА КНОПОК ЧАСТЫХ ВОПРОСОВ def call_quest_menu(call): # Вопрос 1 if call.data == 'questions.quest1': dely_quest = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton('↩️Назад', callback_data='main.questions') btn2 = types.InlineKeyboardButton('Главное меню', callback_data='back.home') dely_quest.row(btn1, btn2) bot.send_message(call.message.chat.id, '......................', reply_markup=dely_quest) # Вопрос 2 if call.data == 'questions.quest2': pass @bot.callback_query_handler(func=lambda call: call.data.startswith('catalog.')) # ОБРАБОТКА КНОПОК КАТАЛОГА def call_cat_menu(call): # Товар 1 if call.data == 'catalog.01': cat = types.InlineKeyboardMarkup() btn1 = types.InlineKeyboardButton('↩️Назад', callback_data='main.catalog') btn2 = types.InlineKeyboardButton('Главное меню', callback_data='back.home' ) cat.row(btn1, btn2) bot.send_message(call.message.chat.id, '...........', reply_markup=men_cat) # Товар 2 if call.data == 'catalog.02': pass @bot.callback_query_handler(func=lambda call: call.data.startswith('back.')) # ВОЗВРАТ В ГЛАВНОЕ МЕНЮ def back_start_menu(call): if call.data == 'back.home': main(call.message) bot.polling(none_stop=True)
Теперь все красиво и работает.
В пример отправлю получившийся рабочий код, если кому-то потребуется: