Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python библиотека telebot

петр константинов Знаток (407), на голосовании 1 месяц назад
Как сделать в многоуровневом меню на python ввод сообщения с изменением кнопки меню(с библиотекой telebot)?
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9542) 2 месяца назад
 import telebot 
from telebot import types

token = 'ваш_токен'
bot = telebot.TeleBot(token)

# Основная функция для создания клавиатуры
def create_main_menu():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Меню 1")
item2 = types.KeyboardButton("Меню 2")
markup.add(item1, item2)
return markup

def create_submenu_1():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Опция 1.1")
item2 = types.KeyboardButton("Опция 1.2")
back = types.KeyboardButton("Назад")
markup.add(item1, item2, back)
return markup

def create_submenu_2():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Опция 2.1")
item2 = types.KeyboardButton("Опция 2.2")
back = types.KeyboardButton("Назад")
markup.add(item1, item2, back)
return markup

@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, "Выберите меню:", reply_markup=create_main_menu())

@bot.message_handler(func=lambda message: message.text == "Меню 1")
def menu1(message):
bot.send_message(message.chat.id, "Вы в меню 1. Выберите опцию:", reply_markup=create_submenu_1())

@bot.message_handler(func=lambda message: message.text == "Меню 2")
def menu2(message):
bot.send_message(message.chat.id, "Вы в меню 2. Выберите опцию:", reply_markup=create_submenu_2())

@bot.message_handler(func=lambda message: message.text in ["Опция 1.1", "Опция 1.2"])
def handle_menu1_options(message):
bot.send_message(message.chat.id, f"Вы выбрали {message.text} в меню 1.")
bot.send_message(message.chat.id, "Напишите что-то еще или вернитесь в главное меню.", reply_markup=create_main_menu())

@bot.message_handler(func=lambda message: message.text in ["Опция 2.1", "Опция 2.2"])
def handle_menu2_options(message):
bot.send_message(message.chat.id, f"Вы выбрали {message.text} в меню 2.")
bot.send_message(message.chat.id, "Напишите что-то еще или вернитесь в главное меню.", reply_markup=create_main_menu())

@bot.message_handler(func=lambda message: message.text == "Назад")
def go_back(message):
bot.send_message(message.chat.id, "Вы вернулись в главное меню.", reply_markup=create_main_menu())

@bot.message_handler(content_types=['text'])
def handle_text(message):
bot.send_message(message.chat.id, f"Вы написали: {message.text}")

if __name__ == "__main__":
bot.infinity_polling()
петр константиновЗнаток (407) 2 месяца назад
а где тут ввод текста после которого меняется кнопка?
Рустам АбдрашитовМыслитель (9542) 2 месяца назад
Хз нейронка генерировала я не шарю разберись ты же должен шарить вроде нейронеп каждуую строчку кода подписывает
петр константиновЗнаток (407) 2 месяца назад
а с inline кнопками? можно продемонстрировать
Рустам Абдрашитов Мыслитель (9542) петр константинов, я не понимаю вообще ничего это нейронка сгенерировала
Похожие вопросы