Skip to content

Клавиатуры

lxstvayne edited this page Nov 20, 2021 · 1 revision

Вы можете использовать ассоциации для отправки клавиатур.

KeyboardAssociator

Чтобы создать ассоциации клавиатур необходимо создать экземпляр класса KeyboardAssociator:

keyboard = KeyboardAssociator(folder='keyboards', models='models')
  • folder - папка с файлами клавиатур в формате json;
  • models - файл с расширением .py, хранящий модели клавиатур.

Теперь вы можете получать клавиатуру вызвав keyboard.keyboard_name или keyboard[keyboard_name], где keyboard_name - название вашей клавиатуры.

KeyboardModel

С помощью класса 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

Button

Содержит объекты кнопок:

  • Text
  • OpenLink
  • Location
  • VKPay
  • VKApps
  • Callback

Подробнее о них вы можете прочитать в официальной документации

Color

Перечисление. Доступные цвета: PRIMARY, SECONDARY, NEGATIVE, POSITIVE.