首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python的inlineKeyboardButton -telegram-bot库替换inlineKeyboardButton?

如何使用python的inlineKeyboardButton -telegram-bot库替换inlineKeyboardButton?
EN

Stack Overflow用户
提问于 2019-02-12 13:49:04
回答 2查看 1.5K关注 0票数 0

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

如何将当前的inlinekeyboardbuttons按钮替换为另一个?我只想建立一个带有按钮的菜单,根据我点击的内容,会出现不同的在线键盘按钮,例如,通过阻塞" happy“,我想要三种不同的快乐状态出现。有没有人能推荐一种简单的方法?

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2019-02-15 20:12:41

您可以使用bot.edit_message_reply_markup替换InlineKeyboard。

它应该是这样的:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-03-05 16:04:51

要替换行内键盘,只需使用bot.editMessageText或bot.editMessageReplyMarkup方法即可

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54643586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档