@char906

Как сделать инлайн кнопки разного размера?

Здравствуйте, никак не могу понять, как сделать инлайн кнопки разного размера типа вот так:
60774d2a34224843180549.png

Я делаю через markup = types.InlineKeyboardMarkup(row_width=2)markup = types.InlineKeyboardMarkup(row_width=2)

Но оно делает одинаковый размер кнопок на всю группу, как сделать, чтобы кнопки под сообщением были разного размера?
  • Вопрос задан
  • 1267 просмотров
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
На скриншоте просто 6 кнопок с ограничением в 4 кнопки в ряду. То есть просто передаётся row_width=4 и добавляются кнопки через add(), они уже сами разобьются по группам и растянутся
Ответ написан
@twistfire92
Python backend developer
Установить конкретный размер кнопки не получится, можно только выбрать количество кнопок в ряду. при создании разметки markup = types.InlineKeyboardMarkup() указывается необязательный параметр row_width - это количество кнопок в ряду по умолчанию. Т.е. если потом добавлять кнопки через markup.add(), кнопки сами будут выстраиваться в ряд в том количестве, в котором вы указали. Если же хотите вставить ряд кнопок с конкретным количеством элементов, используется метод row(), в котором передаются все кнопки, которые вы хотите поместить в этот ряд.

Как должно выглядеть в вашем случаае:

markup = types.InlineKeyboardMarkup()

button1 = types.InlineKeyboardButton(text='Кнопка1', callback_data='button1')
button2 = types.InlineKeyboardButton(text='Кнопка2', callback_data='button2')
markup.row(button1, button2) # Заполнили первый ряд

button3 = types.InlineKeyboardButton(text='Кнопка3', callback_data='button3')
button4 = types.InlineKeyboardButton(text='Кнопка4', callback_data='button4')
button5 = types.InlineKeyboardButton(text='Кнопка5', callback_data='button5')
button6 = types.InlineKeyboardButton(text='Кнопка6', callback_data='button6')
markup.row(button3, button4, button5, button6 ) # Заполнили второй ряд

button7 = types.InlineKeyboardButton(text='Кнопка7', callback_data='button7')
button8 = types.InlineKeyboardButton(text='Кнопка8', callback_data='button8')
markup.row(button7, button8) # Заполнили третий ряд
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы