我正在制作一个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):
...
我尝试了很多方法,但都没有效果
文档这样描述了按钮:
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