代码之家  ›  专栏  ›  技术社区  ›  Sumithran

电报机器人内置键盘,在另一个内置键盘上回调

  •  0
  • Sumithran  · 技术社区  · 7 年前

    在我的python telegram bot中,我可以显示第一个inlinekeyboard,但在单击第一个inlinekeyboard菜单后,如何在bot中显示第二个inlinekeyboard呢。

    def start(bot, update):
        sub = [
                [InlineKeyboardButton("AAA", callback_data='0'),
                InlineKeyboardButton("BBB", callback_data='1')]
            ]
    
        reply_markup = InlineKeyboardMarkup(sub)
        update.message.reply_text('Select Branch:', reply_markup=reply_markup)
    
    
    def button(bot, update):
    
        subK = [
                InlineKeyboardButton("JJJ", callback_data='0'),
                InlineKeyboardButton("HHH", callback_data='1')
            ]
    
        reply_markup = InlineKeyboardMarkup(subK)
    
        query = update.callback_query
    
        bot.edit_message_text(chat_id=query.message.chat_id,
                              message_id=query.message.message_id,
                              reply_markup=ReplyKeyboardRemove())
    
    
        bot.edit_message_text(chat_id=query.message.chat_id,
                              message_id=query.message.message_id,
                              reply_markup=reply_markup)
    

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Lukr    7 年前

    我假设您已经将button()函数添加到CallbackHandler()中了? 然后可以使用if语句检查回调_数据(如果新键盘取决于按下的按钮)

    也许只是subK中缺少的第二对括号?

    def button(bot, update):
    
        subK = [[
                InlineKeyboardButton("JJJ", callback_data='0'),
                InlineKeyboardButton("HHH", callback_data='1')
            ]]
    

    ReplyKeyboardRemove似乎不需要在这个片段中,但它可能与其他地方创建的ReplyKeyboards有关?但请回复留言板!=内联键盘。