Открыть новое подменю, после нажатия на кнопку. Python, Telegram
import telebot
from telebot import types
bot = telebot.TeleBot('')
@bot.message_handler(commands=["start"])
def start(m):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Начать заниматься']])
keyboard.add(*[types.KeyboardButton(name) for name in ['Наша группа спорта']])
keyboard.add(*[types.KeyboardButton(name) for name in ['О нас']])
bot.send_message(m.chat.id, 'Выберите действие', reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def message(message):
if message.text == 'Начать заниматься':
keyboardgostart = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboardgostart.add(*[types.KeyboardButton(name) for name in ['Зал']])
keyboardgostart.add(*[types.KeyboardButton(name) for name in ['Улица']])
bot.send_message(message.chat.id, 'Выберите кнопку')
elif message.text == 'Наша группа спорта':
bot.send_message(message.chat.id, 'Сслыка на группу')
elif message.text == 'О нас':
bot.send_message(message.chat.id, 'FQ')
bot.polling()
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
keyboard.add(*[types.KeyboardButton(name) for name in и keyboardgostart.add(*[types.KeyboardButton(name) for name in принимает список, в котором перечислены кнопки (в данном случае), поэтому можно все кнопки поместить в один список.
И если при if message.text == 'Начать заниматься': вам нужно показывать другую клавиатуру, то почему вы ее не добавляете к сообщению через reply_markup=keyboardgostart?
Будьте внимательны, потому как с кнопками в start() вы сделали всё правильно.
А вообще рекомендую переходить на InlineKeyboard
@bot.message_handler(commands=["start"])
def start(m):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Начать заниматься', 'Наша группа спорта', 'О нас']])
bot.send_message(m.chat.id, 'Выберите действие', reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def message(message):
if message.text == 'Начать заниматься':
keyboardgostart = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboardgostart.add(*[types.KeyboardButton(name) for name in ['Зал', 'Улица']])
bot.send_message(message.chat.id, 'Выберите кнопку', reply_markup=keyboardgostart)
elif message.text == 'Наша группа спорта':
bot.send_message(message.chat.id, 'Сслыка на группу')
elif message.text == 'О нас':
bot.send_message(message.chat.id, 'FQ')
bot.polling()