Ширина Inline кнопок в боте на aiogram
Имеется такой код
markup = InlineKeyboardMarkup(row_width=6)
info = InlineKeyboardButton('text', callback_data=id)
ready = InlineKeyboardButton('✅', callback_data=id)
cancel = InlineKeyboardButton('?', callback_data=id)
markup.row(info, ready, cancel)
Можно ли сделать так, чтобы кнопка info занимала 4 из 6 столбцов, а ready и cancel занимали по одному.
Ответы (2 шт):
Параметр row_width=6 указывает количество возможных inline кнопок на одной строке. По умолчанию он равняется трём.
Если я правильно понял вас, то вам нужно разместить кнопку info на одной строке, а кнопки ready и cancel на другой. В таком случае вы можете использовать add() и insert().
С помощью add() – происходит добавление кнопки на новую строку. С помощью insert() вы присоединяете кнопку к уже имеющейся (последней) строке. В вашем случае решение выглядит так:
markup = InlineKeyboardMarkup()
info = InlineKeyboardButton('text', callback_data=id)
ready = InlineKeyboardButton('✅', callback_data=id)
cancel = InlineKeyboardButton('?', callback_data=id)
markup.add(info).add(ready).insert(cancel)
У API телеграм-бота такой опции нет. Приведенные функции - это обертки от API. А само апи получает двумерный массив кнопок без размеров, только ряды и кнопки в них. Если в ряде будет 3 кнопки, они будут занимать ровно по трети длины.