vera_ira
@vera_ira
Делаю приложение по изучению Иврит (Python Kotlin)

Как в InlineKeyboard вложить 1 ,2 или 0 кнопок?

Друзья, есть у меня функция, которая по условиям должна выдавать 1,2 или 0 кнопок.
Вопрос как вернуть 0 кнопок. Я предположила, что так:

else:
        key.add()


Но видимо ошибаюсь. Подскажите.

def make_batton_imper(message, ts, tts, add_buttons):
    key = telebot.types.InlineKeyboardMarkup(row_width=2) 
    data_but = "id_"+str(ts)
    but_i = telebot.types.InlineKeyboardButton(text=" + 1", callback_data=data_but)
    data_but_p = "id_"+str(tts)
    but_py = telebot.types.InlineKeyboardButton(text=" + 2", callback_data=data_but_p)
    if add_buttons == "pass":
         key.add(but_py)
    elif add_buttons == "all":
         key.row(but_i, but_py)
    else:
        key.add()
    return key


Или предлОжите другой вариант?
  • Вопрос задан
  • 639 просмотров
Решения вопроса 1
vera_ira
@vera_ira Автор вопроса
Делаю приложение по изучению Иврит (Python Kotlin)
Решила задачу примерно так. До запуска функции скрипт определяет кол-во необходимых кнопок и передает данные в функцию для формирования кнопок. Если кнопок 0, то функция не запускается.
Если знаете решение короче, дайте знать. Спасибо!

if ts != 0:
    if ts != 0 and tts != 0:
        key = make_batton_imper(message, ts, tts, add_buttons="all")
    elif ts != 0 and tts == 0:
        key = make_batton_imper(message, ts, tts, add_buttons="pass")
    answer = "бла-бла-бла с кнопками"
    bot.send_message(message.chat.id, answer, reply_markup=key, parse_mode='Markdown')
else:
    answer = "бла-бла-бла без кнопок" 
    bot.send_message_text(message.chat.id, answer, parse_mode='Markdown') 
        
def make_batton_imper(message, ts, tts, add_buttons):
    key = telebot.types.InlineKeyboardMarkup(row_width=2) 
    data_but = "id_"+str(ts)
    but_i = telebot.types.InlineKeyboardButton(text=" + 1", callback_data=data_but)
    data_but_p = "id_"+str(tts)
    but_py = telebot.types.InlineKeyboardButton(text=" + 2", callback_data=data_but_p)
    if add_buttons == "pass":
         key.add(but_py)
    elif add_buttons == "all":
         key.row(but_i, but_py)
    return key
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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