Размер inline кнопок Telegram

Встроенная клавиатура Telegram — отличная функция с множеством различных вариантов использования.

Встроенные кнопки добавляются в виде списка таких элементов:

inline_keyboard = [[InlineKeyboardButton(text=»button», callback_data=»button»), InlineKeyboardButton(text=»reset»,callback_data=»reset»)]] inline_keyboard_markup = InlineKeyboardMarkup(inline_keyboard) update.message.reply_text(«hi», reply_markup=inline_keyboard_markup)

Приведенный выше код добавляет две кнопки, каждая из которых имеет половину ширины экрана чата.

Я знаю, что для нормальной кнопки клавиатуры есть resize_keyboard параметр, который как-то можно использовать.

У меня вопрос, есть ли способ изменить размер встроенных кнопок? например, чтобы сделать его полной шириной или четверть ширины.

Источник: stackru.com

INLINE кнопки в Telegram

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

60774d2a34224843180549.png

Здравствуйте, никак не могу понять, как сделать инлайн кнопки разного размера типа вот так:

Я делаю через markup = types.InlineKeyboardMarkup(row_width=2) markup = types.InlineKeyboardMarkup(row_width=2)

Но оно делает одинаковый размер кнопок на всю группу, как сделать, чтобы кнопки под сообщением были разного размера?

  • Вопрос задан более двух лет назад
  • 729 просмотров

Комментировать
Решения вопроса 2

SoreMix

На скриншоте просто 6 кнопок с ограничением в 4 кнопки в ряду. То есть просто передаётся row_width=4 и добавляются кнопки через add(), они уже сами разобьются по группам и растянутся

Ответ написан более двух лет назад
Нравится 1 2 комментария

60774d006ca48107793248.png

а вот так как сделать?

SoreMix

char906, добавить первый ряд кнопок через row(), потом второй и третий
Python backend developer

Установить конкретный размер кнопки не получится, можно только выбрать количество кнопок в ряду. при создании разметки markup = types.InlineKeyboardMarkup() указывается необязательный параметр row_width — это количество кнопок в ряду по умолчанию. Т.е. если потом добавлять кнопки через markup.add(), кнопки сами будут выстраиваться в ряд в том количестве, в котором вы указали. Если же хотите вставить ряд кнопок с конкретным количеством элементов, используется метод row(), в котором передаются все кнопки, которые вы хотите поместить в этот ряд.

Как должно выглядеть в вашем случаае:

Ботостроение Telegram. Инлайн-кнопки — вы формировали их неправильно. Фабрика коллбэков Aiogram3.


markup = types.InlineKeyboardMarkup() button1 = types.InlineKeyboardButton(text=’Кнопка1′, callback_data=’button1′) button2 = types.InlineKeyboardButton(text=’Кнопка2′, callback_data=’button2′) markup.row(button1, button2) # Заполнили первый ряд button3 = types.InlineKeyboardButton(text=’Кнопка3′, callback_data=’button3′) button4 = types.InlineKeyboardButton(text=’Кнопка4′, callback_data=’button4′) button5 = types.InlineKeyboardButton(text=’Кнопка5′, callback_data=’button5′) button6 = types.InlineKeyboardButton(text=’Кнопка6′, callback_data=’button6′) markup.row(button3, button4, button5, button6 ) # Заполнили второй ряд button7 = types.InlineKeyboardButton(text=’Кнопка7′, callback_data=’button7′) button8 = types.InlineKeyboardButton(text=’Кнопка8′, callback_data=’button8′) markup.row(button7, button8) # Заполнили третий ряд

Источник: qna.habr.com

установить/изменить размер кнопок InlineKeyboardMarkup, таких как ReplyKeyboardMarkup

enter image description here

У меня есть 4 ключа в моей телеграмме бот-апи с InlineKeyboardMarkup , но когда я отправляю ее для андроидного клиента, размер кнопок слишком мал, чтобы пользователь мог видеть. В веб-клиенте телеграммы эти значки в порядке и имеют очень хороший размер! Есть ли способ установить размер кнопок в InlineKeyboardMarkup например ReplyKeyboardMarkup и параметр resize_keyboard ? или настроить размер этих кнопок и.

class Ctmp: pass
ctobj = Ctmp()
ii = 0
a = []
for k, v in ddd.items() :
if ( len(k) > 0 and len(v) > 0 ) :
print(k, v)
setattr(ctobj, ‘repkey’+ str(i), InlineKeyboardButton(text= str(v), callback_data=str(k), resize_keyboard=True))
a.append( getattr(ctobj, ‘repkey’ + str(i)) )
++ii

repl = InlineKeyboardMarkup([a])
bot.sendMessage(chat_id= dd.get(«chatid», None), text=»/», reply_markup=repl)

спросил(а) 2016-07-02T13:38:00+03:00 6 лет, 10 месяцев назад

Источник: progi.pro

Оцените статью
Добавить комментарий