Discord.py 选择按钮后出现的菜单

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

我正在制作一个discord.py 机器人,并正在测试我的 /settings 命令。它工作正常,但有一个问题:下拉菜单出现在按钮后面,但我希望它位于上面。

这是我的代码:

class Settings(discord.ui.View):
    def __init__(self) -> None:
        super().__init__()
        self.value = None
        self.build_options()

        select = discord.ui.Select(options=self.options)
        select.callback = self.select_option
        self.add_item(select)
        

    def build_options(self):
        if get_name() == "":
            self.options = [
                discord.SelectOption(
                    label=" ",
                    default=True
                )
            ]
        else:
            self.options = [
                discord.SelectOption(
                    label=get_name(),
                    default=True
                )
            ]
    
    async def select_option(self, interaction: discord.Interaction, select: discord.ui.Select):
        if select.values[0] == "None":
            await interaction.response.send_message("None", ephemeral=True)
        else:
            await interaction.response.send_message("None", ephemeral=True)

    @discord.ui.button(label="Add", emoji="<:add:1203694266573127680>", style=discord.ButtonStyle.success)
    async def add_profile(self, interaction: discord.Interaction, button: discord.ui.Button):
        await interaction.response.send_modal(New())

    @discord.ui.button(label="Edit", emoji="<:edit:1203694268473151558>", style=discord.ButtonStyle.secondary)
    async def edit_profile(self, interaction: discord.Interaction, button: discord.ui.Button):
        ...

    @discord.ui.button(label="Delete", emoji="<:trash:1204886545765503056>", style=discord.ButtonStyle.danger)
    async def delete_profile(self, interaction: discord.Interaction, button: discord.ui.Button):
        ...

我尝试了很多方法,但都没有效果

python discord discord.py bots
1个回答
0
投票

文档这样描述了按钮:

row (Optional[int]) – 该按钮所属的相对行。 Discord 组件只能有 5 行。默认情况下,项目会自动排列到这 5 行中。如果您想控制行的相对位置,那么建议传递索引。例如,row=1 将显示在 row=2 之前。默认为 None,即自动排序。行号必须介于 0 到 4 之间(即零索引)。

Select也有相同的参数。

这意味着如果您更改

row
参数,您可以设置它们各自的行。

您的代码:

       select = discord.ui.Select(options=self.options)

您可以将上面的内容更改为:

       select = discord.ui.Select(options=self.options, row=0)  # set the row
© www.soinside.com 2019 - 2024. All rights reserved.