@scxrp

Как динамически изменять InlineButton?

Суть вопроса в изменении inline кнопок без отправки нового сообщения. Они должны быть как меню, то есть например под сообщением выходит одна кнопка "Изменить статус", после нажатия вместо неё под этим же сообщением должны появиться ещё 4 кнопки с выбором статуса.
def find_by_number(message):
    markup_inline = types.InlineKeyboardMarkup(row_width=1)
    status_btn = types.InlineKeyboardButton(text='Изменить статус', callback_data='change_status')
    markup_inline.add(status_btn)

    inv_num = message.text

    if inv_num.isdigit():
        if inv_num == sql_query: #ИЗМЕНИТЬ
            sql_query = ''
            name = ''
            inv_num = ''
            place = ''
            bot.send_message(message.chat.id, text=f'Наименование: {name}\nИнв. номер: {inv_num}\nМесто: {place}',
                             reply_markup=markup_inline)
    else:
        msg = bot.send_message(message.chat.id, text='Введите числовое значение')
        bot.register_next_step_handler(msg, find_by_number)

@bot.callback_query_handler(func = lambda call: True)
def answer(call):
    if call.data == 'change_status':
        markup_inline = types.InlineKeyboardMarkup(row_width=3)
        item1 = types.InlineKeyboardButton(text='Установлен', callback_data='status_1')
        item2 = types.InlineKeyboardButton(text='В ремонте', callback_data='status_2')
        item3 = types.InlineKeyboardButton(text='Резерв', callback_data='status_3')
        item4 = types.InlineKeyboardButton(text='Списан', callback_data='status_4')
        markup_inline.add(item1, item2, item3, item4)


Подскажите что не так, интернет плохо грузит, всё что смог найти не дало никаких плодов
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Существует метод bot.edit_message_text, которым можно отредактировать ранее отправленное сообщение. Соответственно, редактируем, передавая старый текст (если его не надо менять) и новую клавиатуру.

Примеров в интернетах много, вон хотя бы в моём личном боте: https://github.com/shurshur/glagolitic-bot/blob/ma...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект