Задать вопрос
@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, но ничего не работает.
Помогите, пожалуйста
  • Вопрос задан
  • 1330 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 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')))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы