如何在python-telegram-bot中设置默认显示的常规按钮?
实现python-telegram-bot按钮常驻输入框上方(两端兼容)
你需要替换原示例中的键盘类型,并调整参数配置,具体步骤如下:
- 更换键盘组件:将原示例的
InlineKeyboardMarkup替换为ReplyKeyboardMarkup,后者的按钮会固定显示在输入框上方,而非附着在消息下方。 - 配置常驻参数:创建
ReplyKeyboardMarkup时,设置resize_keyboard=True(适配手机/PC的不同界面尺寸),同时设置one_time_keyboard=False(禁止键盘自动收起,保持常驻显示)。
代码修改示例
原示例中创建内联按钮的代码大概是这样:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup keyboard = [ [InlineKeyboardButton("选项A", callback_data='a')], [InlineKeyboardButton("选项B", callback_data='b')] ] reply_markup = InlineKeyboardMarkup(keyboard)
修改为常驻输入框的键盘:
from telegram import ReplyKeyboardMarkup, KeyboardButton # 定义按钮文本 keyboard = [ [KeyboardButton("选项A")], [KeyboardButton("选项B")] ] # 配置参数实现常驻显示 reply_markup = ReplyKeyboardMarkup( keyboard, resize_keyboard=True, one_time_keyboard=False )
补充说明
- 这种
ReplyKeyboardMarkup按钮被点击后,会向机器人发送按钮上的文本内容,你需要通过MessageHandler监听这些文本消息来处理逻辑,而非原示例的CallbackQueryHandler。 - 如果后续需要隐藏键盘,可以发送
ReplyKeyboardRemove()作为回复标记。
内容的提问来源于stack exchange,提问作者runor runor
相关产品推荐
相关产品推荐

