Меню на ReplyKeyboard с одинаковыми кнопками (telebot)
Допустим есть стартовое меню: -Пункт1 -Пункт2 -Пункт3
В каждом из этих пунктов есть:
- собственная кнопка "Продолжить", которая вызывает ещё одно меню с кнопками
- общая кнопка "Отмена", которая ведет обратно на стартовое меню.
С кнопкой "Отмена" всё понятно. А вот как через ReplyKeyboard реализовать "Продолжить", если во всех трех пунктах она своя собственная, но при этом имеет одинаковое название? Инлайн клавиатуру не предлагать. Была идея как-то схитрить за счет добавления пробелов в название кнопки, но ничего не получилось(может быть из-за того, что мои познания совсем невелики) Ещё нашел такую штуку, как register_next_step_handler, но ещё не разобрался как она работает
Ответы (1 шт):
Не то чтобы это верное решение, я бы назвал это костылем, но тем не менее можно создать две "одинаковые" кнопки. Попробуйте заменить в слове Пункт русскую букву У (кириллица) на английскую y (латиница). Может букву у и будет видно, но думаю с буквами а, o должно сливаться, и обычный юзер не заметит разницы. Реального способа кроме метода register_next_step_handler я так и не нашел - но он имеет свои недостатки, чтобы использовать для такой задачи.
Пример рабочего костыля:
if message.text == 'Пункт1':
return 'русская буква у'
elif message.text == 'Пyнкт1': # здесь str отличается от другого str в условии
return 'Английская буква y'