Чтобы использовать кнопки в боте, созданном с помощью библиотеки Telebot в Python, вы должны использовать InlineKeyboardMarkup и InlineKeyboardButton объекты для создания inline кнопок.
Ниже приведен пример кода, который создает inline кнопки для переключения между различными типами карточек:
```python
import telebot
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
# Создайте экземпляр бота с помощью Вашего токена
bot = telebot.TeleBot('YOUR_BOT_TOKEN')
# Функция для создания клавиатуры с inline кнопками
def generate_markup():
markup = InlineKeyboardMarkup()
markup.row_width = 2 # Количество кнопок в ряду
# Создайте кнопки
card_button = InlineKeyboardButton('Карточки', callback_data='card')
print_card_button = InlineKeyboardButton('Печатные карточки', callback_data='print_card')
# Добавить больше кнопок если нужно
# other_button = InlineKeyboardButton('Другие', callback_data='other')
# Добавляем кнопки в клавиатуру
markup.add(card_button, print_card_button) # , other_button (если есть другие кнопки)
return markup
# Обработчик команды '/start' или другой команды для вывода карточек
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.send_message(message.chat.id, "Выберите тип карточки", reply_markup=generate_markup())
# Обработчик callback queries от inline кнопок
@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
if call.data == "card":
# Обработчик для обычных карточек
bot.send_message(call.message.chat.id, "Здесь будут обычные карточки")
elif call.data == "print_card":
# Обработчик для печатных карточек
bot.send_message(call.message.chat.id, "Здесь будут печатные карточки")
# Добавьте дополнительные условия для других кнопок
# elif call.data == "other":
# # Обработчик для других карточек
# bot.send_message(call.message.chat.id, "Здесь будут другие карточки")
# Важно: Если вы хотите, чтобы после нажатия кнопки она исчезла, нужно использовать этот метод
# bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id)
# Запуск бота
bot.polling(none_stop=True)
```
В данном коде:
- `generate_markup()` функция создает и возвращает клавиатуру с inline кнопками.
- `@bot.message_handler(commands=['start'])` устанавливает обработчик для команды `/start`, отправляя пользователю сообщение с клавиатурой.
- `@bot.callback_query_handler(func=lambda call: True)` устанавливает обработчик для всех callback query.
- `bot.send_message()` функция используется для отправки сообщений пользователю.
- `bot.edit_message_reply_markup()` можно использовать для изменения markup сообщения, например, чтобы скрыть кнопки после нажатия (если это необходимо в вашем контексте).
Убедитесь, что вы подставите свой собственный токен бота в `'YOUR_BOT_TOKEN'`.
Для получения более детальной информации исследуйте документацию pyTelegramBotAPI (Telebot) на GitHub по следующему адресу:
https://github.com/eternnoir/pyTelegramBotAPI