Discord.py 在嵌入中禁用按钮/冻结按钮

Posted

技术标签:

【中文标题】Discord.py 在嵌入中禁用按钮/冻结按钮【英文标题】:Discord.py Disable Button / Freeze Button in embed 【发布时间】:2021-12-27 02:10:52 【问题描述】:

我正在尝试制作这个机器人的复制品,当我按下下面的任何按钮时,它会显示一个下拉菜单,你只能使用下拉菜单,其余所有按钮都被冻结或禁用,但我不知道必须这样做,我已经在谷歌上搜索过,但没有任何帮助

这是我一直在尝试的代码

      Button(
          style=ButtonStyle.gray ,
          label="Add Req.",
          custom_id="add_req",
          emoji='➕'),
      Button(
          style=ButtonStyle.gray,
          label="Add Mult.",
          custom_id="add_mult",
          emoji='➕'))

  columns_of_buttons = ActionRow(
      Button(
          style = ButtonStyle.gray,
          label= "Remove Item",
          custom_id="remove_item",
          emoji='➖'),
      Button(  
          style = ButtonStyle.gray,
          label= "Start",
          custom_id="start",
          emoji='➡'))

  msg = await ctx.send(embed = embed ,components= [row_of_buttons , columns_of_buttons])
  on_click = msg.create_click_listener(timeout=60)
  @on_click.matching_id("add_req")
  async def add_req(ctx):
      embed.clear_fields()
      emb = discord.Embed(title = 'Add new Requirement' , description = '**Choose a requirement type**')
      await msg.edit(embed = emb , components=[])
        ```

**EDIT**

I successfully did it by doing this

    ActionRow.disable_buttons(row_of_buttons)
    ActionRow.disable_buttons(columns_of_buttons)

【问题讨论】:

【参考方案1】:

你可以使用:

from discord_components import Button
Button(style = ButtonStyle.gray,
          label= "Remove Item",
          custom_id="remove_item",
          emoji='➖',
          disabled = True)

阅读:https://discord-components.readthedocs.io/en/0.5.2.4/pages/button.html?highlight=button%20disable#discord_components.button.Button.disabled discord_components.Button() 有一个参数:disabled : bool = False

【讨论】:

以上是关于Discord.py 在嵌入中禁用按钮/冻结按钮的主要内容,如果未能解决你的问题,请参考以下文章

嵌入按钮 (Discord.py)

使用 Discord py 使用 Discord 按钮编辑嵌入描述

Discord.py:你如何制作按钮?

带有嵌入式 youtube 视频的 Android WebView,全屏按钮冻结视频

discord.Embed 不被视为嵌入 discord.py

Discord.py 按钮交互消息删除