Задать вопрос
MsAnastasiia
@MsAnastasiia
Девочка.

Как дополнить Python код телеграмм бота?

По таком принципу созданы кнопки
@bot.message_handler(content_types=['text'])
        def handle_buttons(message):
 if message.text == 'Компьютер':
                # Выводим сообщение при старте бота и кнопки управления 
                
                keyboard_comp = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
                keyboard_comp.add(telebot.types.KeyboardButton('Аппаратная часть'), telebot.types.KeyboardButton('Програмная часть'))
                keyboard_comp.add(telebot.types.KeyboardButton('Административная часть'), telebot.types.KeyboardButton('Назад'))
                bot.send_message(message.chat.id, "Выбрано: Компьютер", reply_markup=keyboard_comp)
            elif message.text == 'Аппаратная часть':
                # Выводим сообщение при старте бота и кнопки управления Wi-Fi
                keyboard_comp_hardware = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)\
                .add(telebot.types.KeyboardButton('Wi-Fi'), telebot.types.KeyboardButton('Ethernet'))\
                .add(telebot.types.KeyboardButton('Кнопка 3.2'), telebot.types.KeyboardButton('Назад'))
                bot.send_message(message.chat.id, "Выбрано: Аппаратная часть", reply_markup=keyboard_comp_hardware)
            elif message.text == 'Програмная часть':
                # Выводим сообщение при старте бота и кнопки управления Wi-Fi
                keyboard_comp_software = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)\
                .add(telebot.types.KeyboardButton('WSL'), telebot.types.KeyboardButton('QBittorrent'))\
                .add(telebot.types.KeyboardButton('QUIK'), telebot.types.KeyboardButton('Назад'))
                bot.send_message(message.chat.id, "Выбрано: Програмная часть", reply_markup=keyboard_comp_software)
            elif message.text == 'Административная часть':
                # Выводим сообщение при старте бота и кнопки управления Wi-Fi
                keyboard_comp_admin = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)\
                .add(telebot.types.KeyboardButton('Выйти из сеанса'), telebot.types.KeyboardButton('Перезагрузить'))\
                .add(telebot.types.KeyboardButton('Кнопка 3.3'), telebot.types.KeyboardButton('Назад'))
                bot.send_message(message.chat.id, "Выбрано: Административная часть", reply_markup=keyboard_comp_admin)

telebot.types.KeyboardButton('Назад'))
Вопрос в следующем, как сделать кнопку Назад, чтобы она имела название Назад, а сообщение отправлялось, например, Компьютер.
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@twistfire92
Python backend developer
Никак. Такие кнопки просто отправляют сообщение с текстом который в них указан. Т.е. если есть кнопка с текстом "назад", то ее нажатие будет равносильно тому, что вы просто наберете "назад" и отправите.

Если хотите какой-то более сложной логики с кнопками - используйте InlineButton
Ответ написан
Комментировать
@artem111999000
SEO
Для того чтобы кнопка "Назад" имела название "Назад" и отправляла сообщение "Компьютер", вам следует изменить обработчик этой кнопки. Вот пример, как это можно сделать:

```python
@bot.message_handler(content_types=['text'])
def handle_buttons(message):
if message.text == 'Компьютер':
keyboard_comp = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_comp.add(telebot.types.KeyboardButton('Аппаратная часть'), telebot.types.KeyboardButton('Програмная часть'))
keyboard_comp.add(telebot.types.KeyboardButton('Административная часть'), telebot.types.KeyboardButton('Назад'))
bot.send_message(message.chat.id, "Выбрано: Компьютер", reply_markup=keyboard_comp)

elif message.text == 'Аппаратная часть':
keyboard_comp_hardware = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_comp_hardware.add(telebot.types.KeyboardButton('Wi-Fi'), telebot.types.KeyboardButton('Ethernet'))
keyboard_comp_hardware.add(telebot.types.KeyboardButton('Кнопка 3.2'), telebot.types.KeyboardButton('Назад'))
bot.send_message(message.chat.id, "Выбрано: Аппаратная часть", reply_markup=keyboard_comp_hardware)

elif message.text == 'Програмная часть':
keyboard_comp_software = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_comp_software.add(telebot.types.KeyboardButton('WSL'), telebot.types.KeyboardButton('QBittorrent'))
keyboard_comp_software.add(telebot.types.KeyboardButton('QUIK'), telebot.types.KeyboardButton('Назад'))
bot.send_message(message.chat.id, "Выбрано: Програмная часть", reply_markup=keyboard_comp_software)

elif message.text == 'Административная часть':
keyboard_comp_admin = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_comp_admin.add(telebot.types.KeyboardButton('Выйти из сеанса'), telebot.types.KeyboardButton('Перезагрузить'))
keyboard_comp_admin.add(telebot.types.KeyboardButton('Кнопка 3.3'), telebot.types.KeyboardButton('Назад'))
bot.send_message(message.chat.id, "Выбрано: Административная часть", reply_markup=keyboard_comp_admin)

elif message.text == 'Назад':
keyboard_comp = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_comp.add(telebot.types.KeyboardButton('Компьютер'))
bot.send_message(message.chat.id, "Компьютер", reply_markup=keyboard_comp)
```

В этом примере, если пользователь нажимает кнопку "Назад", будет отправлено сообщение "Компьютер", а также будет показана клавиатура с кнопкой "Компьютер". Вы можете адаптировать этот код для работы с другими разделами и кнопками в вашем телеграм-боте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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