You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的aiogram库实现多行内联按钮及调整按钮大小

使用aiogram开发Telegram机器人的两个问题解答

1. 实现多行名称的内联按钮

直接换行输入文本无效的话,改用转义字符\n来标记换行即可。aiogram的InlineKeyboardButton支持带\n的文本内容,Telegram客户端会自动渲染成多行显示。

示例代码:

from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

# 创建带多行文本的内联按钮
multi_line_button = InlineKeyboardButton(
    text="第一行内容\n第二行内容\n第三行补充",
    callback_data="multi_line_btn"
)

keyboard = InlineKeyboardMarkup(inline_keyboard=[[multi_line_button]])

2. 调整内联按钮的尺寸

Telegram官方并未提供直接设置内联按钮宽高的API,但可以通过两种方式间接调整:

  • 通过文本控制:增加文本行数可以拉高按钮高度;用空格填充或调整文本长度,能在一定程度上影响按钮宽度(最终宽度由客户端自适应)。
  • 通过按钮排列控制:使用InlineKeyboardMarkup的row_width参数,或者手动分组按钮。比如一行只放一个按钮时,按钮会自动撑满当前行宽度;一行放置多个按钮时,宽度会被均分。

示例代码:

# 一行仅放一个按钮,自动撑满行宽
full_width_btn = InlineKeyboardButton(text="宽按钮示例", callback_data="full_width")
keyboard = InlineKeyboardMarkup(inline_keyboard=[[full_width_btn]])

# 用多行空行拉高按钮高度
tall_btn = InlineKeyboardButton(text="短文本\n\n\n通过空行拉高按钮", callback_data="tall_btn")
keyboard = InlineKeyboardMarkup(inline_keyboard=[[tall_btn]])

内容的提问来源于stack exchange,提问作者Ivany4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:42:02