Клавиатуры в боте на aiogram

Рейтинг: 0Ответов: 3Опубликовано: 29.01.2023

В начале есть такая клавиатура

menu = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
show_all_btn = KeyboardButton('Все задачи')
clear_btn = KeyboardButton('Очистить список')
history_btn = KeyboardButton('История')
menu.add(show_all_btn, clear_btn).add(history_btn)

После нажатия на history_btn нужно изменить эту клавиатуру на другую и отправить inline клавиатуру, но так чтобы не было лишних сообщений.

menu2 = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
clear_btn = KeyboardButton('Очистить список')
back_btn= KeyboardButton('Назад')
menu2.add(clear_btn).add(back_btn)

Какие способы есть чтобы этого добиться?

Ответы

▲ 0

Никак, ведь markup всегда идёт ответом на какоето сообщение и даже если его моментально удалять, то markup тоже сразу пропадёт. Вы можете убидиться в этом почитав документацию aiogram, либо же просто даже посмотрев на название класса) ReplyKeyboardMarkup, reply - ответ

▲ 0

ReplyKeyboardMarkup отправляет сообщение. Вы можете моментально удалить сообщение от пользователя и бота, после чего прислать сообщение с Inline клавиатурой.

▲ 0

Я пришёл к выводу что лучше всё организовать через inline кнопки. Спасибо всем за потраченное время😊