如何使用python的python-telegram-bot库替换另一个inlineKeyboardButton的inlineKeyboardButton?

问题描述 投票:0回答:2

我是编程新手,现在正在尝试创建一个简单的菜单电报机器人。

如何将当前的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)
telegram python-telegram-bot
2个回答
0
投票

要替换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)

希望这很有用!


0
投票

要替换内联键盘,您只需使用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)
© www.soinside.com 2019 - 2024. All rights reserved.