-
-
Notifications
You must be signed in to change notification settings - Fork 2
Клавиатуры
Вы можете использовать ассоциации для отправки клавиатур.
Чтобы создать ассоциации клавиатур необходимо создать экземпляр класса KeyboardAssociator
:
keyboard = KeyboardAssociator(folder='keyboards', models='models')
-
folder
- папка с файлами клавиатур в форматеjson
; -
models
- файл с расширением.py
, хранящий модели клавиатур.
Теперь вы можете получать клавиатуру вызвав keyboard.keyboard_name
или keyboard[keyboard_name]
, где keyboard_name
- название вашей клавиатуры.
С помощью класса KeyboardModel
можно удобно создавать свои клавиатуры на Python
.
Пример:
Создадим файл keyboards.py
, где будут храниться наши модели. Импортируем KeyboardModel
, Button
, Color
:
from vk_maria.keyboard import KeyboardModel, Button, Color
Теперь необходимо определить свои модели. Для этого необходимо создать классы, родителями которых будет KeyboardModel
:
class TestKeyboard(KeyboardModel):
one_time = True
row1 = [
Button.Text(Color.PRIMARY, 'Кнопка 1'),
Button.Text(Color.PRIMARY, 'Кнопка 2')
]
row2 = [
Button.Text(Color.PRIMARY, 'Кнопка 3'),
Button.Text(Color.PRIMARY, 'Кнопка 4')
]
class Calculator(KeyboardModel):
row1 = [
Button.Text(Color.PRIMARY, '1'),
Button.Text(Color.PRIMARY, '2'),
Button.Text(Color.PRIMARY, '3')
]
row2 = [
Button.Text(Color.PRIMARY, '4'),
Button.Text(Color.PRIMARY, '5'),
Button.Text(Color.PRIMARY, '6')
]
row3 = [
Button.Text(Color.PRIMARY, '7'),
Button.Text(Color.PRIMARY, '8'),
Button.Text(Color.PRIMARY, '9')
]
row4 = [
Button.Text(Color.PRIMARY, '0')
]
class Empty(KeyboardModel):
pass
Теперь можно импортировать наши модели в файл, в котором будем их использовать, либо создать объект ассоциаций:
keyboard = KeyboardAssociator(models='keyboards')
Готово! Мы можем обращаться к нашим объектам клавиатур через keyboard
:
vk.messages_send(user_id='yourid', message='Разовая клавиатура', keyboard=keyboard.TestKeyboard
vk.messages_send(user_id='yourid', message='Инлайн клавиатура', keyboard=Calculator
Если необходимо скрыть клавиатуру у пользователя, отправьте пустую модель:
vk.messages_send(user_id='yourid', message='Скрываю клавиатуру', keyboard=Empty
Содержит объекты кнопок:
Text
OpenLink
Location
VKPay
VKApps
Callback
Подробнее о них вы можете прочитать в официальной документации
Перечисление. Доступные цвета: PRIMARY
, SECONDARY
, NEGATIVE
, POSITIVE
.