Задать вопрос
nmkru
@nmkru
beginner python programmer

Как сделать смену inline menu по нажатию на кнопки в TelegramBot (TeleBot)?

Хочу сделать так, что бы при нажатии на Inline кнопку мне выводилось следующее Inline меню в том же сообщении.
Часть кода:
@bot.message_handler(content_types=['text']) # Реагирует на отправленные сообщения. Обрабатывает, то что написали боту
def text_type_1st(message):
if message.chat.type == 'private':
if message.text == ' Авто':

markup = types.InlineKeyboardMarkup(row_width=2)
item1 = types.InlineKeyboardButton("RENO", callback_data='reno')
item2 = types.InlineKeyboardButton("ВАЗ", callback_data='vaz')

markup.add(item1, item2)
bot.send_message(message.chat.id, 'Введите марку авто?', reply_markup=markup)

if message.text == 'Выберите модель':

markup = types.InlineKeyboardMarkup(row_width=2)
item1 = types.InlineKeyboardButton("Logan", callback_data='logan')
item2 = types.InlineKeyboardButton("Kaptur", callback_data='kaptur')
item3 = types.InlineKeyboardButton("Duster", callback_data='daster')

markup.add(item1, item2, item3)
bot.send_message(message.chat.id, 'Выберите модель и нажмите на кнопку', reply_markup=markup)

# обрабатывает событие
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
try:
if call.message:
if call.data == 'reno':
# msg = bot.send_message(call.message.chat.id, "Введите и оправьте VIN код авто,\n"
# "которое хотите найти!", parse_mode='html')
msgCarMark = bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
text="Выберите модель", parse_mode='html')

bot.register_next_step_handler(msgCarMark, text_type_2st)

if call.data == 'logan':
bot.send_message(call.message.chat.id, 'Вот и отлично ')
if call.data == 'kaptur':
bot.send_message(call.message.chat.id, 'Вот и отлично')
if call.data == 'daster':
bot.send_message(call.message.chat.id, 'Вот и отлично')

elif call.data == 'vaz':
pass

except Exception as cb:
print("Проблема в колбэке!", cb)
  • Вопрос задан
  • 1444 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
desaki
@desaki
пишу ботов для телеги
В callback_inline:
msgCarMark = bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
text="Выберите модель", parse_mode='html', reply_markup = markup)

Вы редактируете сообщение, и с помощью reply_markup меняете так же inline кнопки
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Filipp_SC
PYTHON♥️
Есть специальная функция
edit_message_reply_markup(chat_id =..., message_id =..., reply_markup =...)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы