@Studentka1996

Как вывести кнопки в несколько рядов?

Не могу вывести кнопки в 2 ряда (post-запрос). Прошу помощи.

Вывожу таким образом:
# {{1строк_1кнопка,1строка_2кнопка},{2строка_1кнопка}}
def ls_keybs_Order(id_order, date_order, pay_url, summa, mind):
     ls = []
     ls.append({'text': "\U0001f4b3 Оплатить", 'url': pay_url[0]})
     # ls.append({'text': "Оплачен?", 'callback_data': f'Проверить_{id_order}'})
     if mind == 0:
          ls.append({'text': "Оплачен?", 'callback_data': f'Проверить_{id_order}', 'text': 'Напомнить', 'callback_data': f'{id_order}_Напом_{date_order}_Напом_{summa}'})
     ls.append({'text': '❌ Отменить', 'callback_data': f'ОтменаЗаказа_{id_order}'})
     return ls


60e014a7daf52238978426.png
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
@twistfire92
У вас должен быть список из рядов. Каждый ряд - отдельный список.
[[перечень кнопок первого ряда], [Кнопки второго ряда]]

просто добавьте [ ] в нужных местах
def ls_keybs_Order(id_order, date_order, pay_url, summa, mind):
     ls = []
     ls.append([{'text': "\U0001f4b3 Оплатить", 'url': pay_url[0]}]) # добавили не кнопку, а список из одной кнопки
     # ls.append({'text': "Оплачен?", 'callback_data': f'Проверить_{id_order}'})
     if mind == 0:
          ls.append([{'text': "Оплачен?", 'callback_data': f'Проверить_{id_order}'}, {'text': 'Напомнить', 'callback_data': f'{id_order}_Напом_{date_order}_Напом_{summa}'}]) # аналогично первому ряду
     ls.append([{'text': '❌ Отменить', 'callback_data': f'ОтменаЗаказа_{id_order}'}]) # еще один ряд
     return ls


Вопрос остается в том, почему вы не используете telebot, aiogram или какую-либо другую библиотеку для этого всего.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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