Задать вопрос
@Vlad_Lop12

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

Всем привет!
Пишу бота на aiogram и столкнулся с такой проблемой, что не могу сделать перенос кнопок.
То есть, чтобы на одном уровне было только 2 кнопки, а на другом тоже 2, а не чтобы в ряд шли.

def  test():
    return types.InlineKeyboardMarkup(row_width = 2).row(
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test1')),
        types.InlineKeyboardButton('test' , callback_data=ge_cb.new(action='test2')),
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test3')),
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test4')))


Указываю параметр row_width = 2, но ничего не работает.
Помогите, пожалуйста
  • Вопрос задан
  • 1219 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
ничего не работает

Потому что кнопки в итоге добавляете через метод row, который игнорирует параметр row_width
row() добавляет именно строку, сколько передали параметров - столько и будет кнопок в строке (ну, без превышения лимитов телеги конечно)
add() добавляет кнопки, разбивая их на несколько строк по длине row_width

Так что заменяйте на
def  test():
    return types.InlineKeyboardMarkup(row_width = 2).add(
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test1')),
        types.InlineKeyboardButton('test' , callback_data=ge_cb.new(action='test2')),
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test3')),
        types.InlineKeyboardButton('test', callback_data=ge_cb.new(action='test4')))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
07 февр. 2025, в 20:29
50000 руб./за проект
07 февр. 2025, в 20:19
10000 руб./за проект
07 февр. 2025, в 19:49
3000 руб./за проект