@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, но ничего не работает.
Помогите, пожалуйста
  • Вопрос задан
  • 965 просмотров
Решения вопроса 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')))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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