我是编程新手,现在正在尝试创建一个简单的菜单电报机器人。
如何将当前的inline键盘按钮替换为另一个?我只是想建立一个带按钮的菜单,根据我点击的内容,出现不同的内联键盘按钮,例如:通过隐藏“快乐”,我想要三个不同的快乐状态到apear。谁有人建议简单方法?
def start(bot, update):
keyboard = [
[InlineKeyboardButton("Happy", callback_data='1'),
InlineKeyboardButton("Whatever", callback_data='2')],
[InlineKeyboardButton("Sad", callback_data='3')]]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Hey there! How do you feel today?', reply_markup=reply_markup)
def button(bot, update):
query = update.callback_query
if query.data == "1":
bot.editMessageText(text="wowowowow",
chat_id=query.message.chat_id,
message_id=query.message.message_id)
if query.data == "2":
em = emoji.emojize(':expressionless:', use_aliases=True)
bot.editMessageText(text="Does it matter? %s " % em,
chat_id=query.message.chat_id,
message_id=query.message.message_id)
if query.data == "3":
em = emoji.emojize(':disappointed:', use_aliases=True)
bot.editMessageText(text="Oh man! %s " % em,
chat_id=query.message.chat_id,
message_id=query.message.message_id)
要替换InlineKeyboard,您可以使用bot.edit_message_reply_markup
。
它会是这样的:
def button(bot,update):
query=update.callback_query
if query.data == "1":
keyboard=[[InlineKeyboardButton(' Just Happy',callback_data='0')],
[InlineKeyboardButton('Very Happy',callback_data='1')]]
reply_markup=InlineKeyboardMarkup(keyboard)
bot.edit_message_reply_markup(
chat_id=query.message.chat_id,
message_id=query.message.message_id,
reply_markup=reply_markup)
希望这很有用!
要替换内联键盘,您只需使用bot.editMessageText或bot.editMessageReplyMarkup方法即可
I am using bot.editMessageText for this problem:
def button(bot,update):
query=update.callback_query
if query.data=='1':
keyboard=[[InlineKeyboardButton('Happy 1',callback_data='1')],[InlineKeyboardButton('Happy 2',callback_data='2')],[InlineKeyboardButton('Happy 3',callback_data='3')
reply_markup=InlineKeyboardMarkup(keyboard)
bot.editMessageText(chat_id=query.message.chat_id,message_id=query.message.message_id,reply_markup=reply_markup)