我正在制作一个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):
        ...

我试了很多方法,但都不管用

推荐答案

For pycord

Documentation对纽扣的评价是这样的:

Row(可选[int])-此按钮所属的相对行.不协调组件只能有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

For discord.py

这应该是同样的过程.请参阅文档here

Python相关问答推荐

通过优化空间在Python中的饼图中添加标签

如何自动抓取以下CSV

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

如果条件为真,则Groupby.mean()

如何在Windows上用Python提取名称中带有逗号的文件?

可变参数数量的重载类型(args或kwargs)

更改键盘按钮进入'

从dict的列中分钟

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

通过pandas向每个非空单元格添加子字符串

try 将一行连接到Tensorflow中的矩阵

什么是最好的方法来切割一个相框到一个面具的第一个实例?

在两极中过滤

合并与拼接并举

python sklearn ValueError:使用序列设置数组元素

为什么Python内存中的列表大小与文档不匹配?

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

应用指定的规则构建数组

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

一维不匹配两个数组上的广义ufunc