@DanielWorker
Junior Python Developer

Как сделать сменяемый текст с inline кнопками?

Хочу что бы при нажатии на Inline кнопку происходила смена текста и кнопок, а не отправка нового сообщения и привязывания к нему кнопок.
Пользуюсь pytelegrambotapi
UPD: Хочу сделать тест который будет менять текст сообщения и у него будет две inline кнопки + и -, надо что бы вопрос менялся и он запоминал выбор до конца теста, а кнопки должны остаться
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
@twistfire92
Python backend developer
Если markup - новая разметка кнопок, тогда так:
bot.edit_message_text(text='Новый текст', chat_id=message.chat.id, message_id=message.id, reply_markup=markup)


Если пользуетесь этой библиотекой, то запоминать то, что ответил пользователь лучше самому, через какую-либо БД.
В сами кнопки пихаете callback_data не просто "+"/"-", а что-то посложнее, чтобы там был еще и номер вопроса. Например "4|+" - положительный ответ на 4-й вопрос. Так при нажатии на очередную кнопку вы сможете распарсить из call.data номер вопроса и ответ с помощью метода split("|"). После того как получили ответ - создаете новую клавиатуру с новыми кнопками, у которых callback_data будут "5|+" и "5|-".

Есть вариант сделать запоминалку ответов на предыдущие вопросы в самих кнопках.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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