Смена inline menu по нажатию на кнопку (aiogram)
Хочу сделать так, что бы при нажатии на Inline кнопку мне выводилось следующее Inline меню в том же сообщении.
У меня вот такой вот код:
#bot.py
@dp.message_handler(text=['Магазин'])
async def shop(message: types.Message):
await message.answer("Выберите подраздел: ", reply_markup=kb.inline_kb_full2)
#keyboards.py
inline_btn_3 = InlineKeyboardButton('A', callback_data='A')
inline_btn_4 = InlineKeyboardButton('B', callback_data='B')
inline_btn_5 = InlineKeyboardButton('C', callback_data='C')
inline_kb_full2 = InlineKeyboardMarkup(row_width=1).add(inline_btn_3,inline_btn_4,inline_btn_5)
Надо что бы при нажатии на "A" у меня появлялось следующее меню:
#keyboards.py
inline_btn_6 = InlineKeyboardButton('1', switch_inline_query_current_chat='')
inline_btn_7 = InlineKeyboardButton('2', switch_inline_query_current_chat='')
inline_btn_8 = InlineKeyboardButton('3', switch_inline_query_current_chat='')
inline_btn_9 = InlineKeyboardButton('Назад ↩️',callback_data='Back')
inline_kb_full3 = InlineKeyboardMarkup(row_width=1).add(inline_btn_6,inline_btn_7,inline_btn_8,inline_btn_9)
Что мне дописать в bot.py, что бы при нажатии одной кнопки в меню у меня появлялось уже другое меню под тем же сообщением?
Ответы (2 шт):
Автор решения: rasput
→ Ссылка
для того, чтобы это сделать вам нужно поймать callback_data из первой клавиатуры.
@dispatcher.callback_query_handler(lambda call: "<CALLBACK>" in call.data)
async def next_keyboard(call):
await call.message.edit_reply_markup(<YOUR KEYBOARD>)
Автор решения: Brainless Politican
→ Ссылка
Вам нужно поймать колбэк первой клавиатуры и далее написать изменение сообщения
@dp.callback_query_handler(lambda callback: callback.data in [A, B, C])
async daf next_keybord(callback: types.Callback_query):
await callback.edit_message(reply_markup= <new keybord>)