You need to enable JavaScript to run this app. discord.py开发中dpymenus分页菜单如何获取当前页及适用标签
优惠活动
大模型
产品
解决方案
定价
更多

discord.py开发中dpymenus分页菜单如何获取当前页及适用标签

dpymenus 分页菜单当前页获取方案及社区发布标签参考

获取菜单当前展示页的实现逻辑

PaginatedMenu实例本身内置了完整的菜单状态追踪能力,不需要开发者自行维护页码计数逻辑:

  • 直接读取menu.current_page属性,即可获取当前正在展示的Page对象实例,菜单停留在第2页时,该属性会对应返回代码中预先定义的page2对象
  • 读取menu.page_index属性可获取当前页的索引值(从0开始计数,第1页对应索引0、第2页对应索引1),索引值加1即为用户视角看到的实际页码

如果需要在页面切换时自动触发当前页相关的业务逻辑(比如记录用户停留位置、根据当前页动态调整按钮权限),可以通过库自带的页面切换回调绑定实现,基于原有代码的可运行扩展示例如下:

from discord.ext import commands
from dpymenus import Page, PaginatedMenu


class Demo(commands.Cog):
    def __init__(self, client):
        self.client = client

    async def page_change_callback(self, menu: PaginatedMenu):
        # 每次页面切换完成后自动执行
        current_page = menu.current_page
        real_page_num = menu.page_index + 1
        # 此处可写入任意依赖当前页的业务逻辑,比如发送操作日志、校验用户权限
        print(f"菜单当前展示:第{real_page_num}页,页面标题为{current_page.title}")

    @commands.command()
    async def demo(self, ctx: commands.Context):
        page1 = Page(title='Page 1', description='First page test!')
        page1.add_field(name='Example A', value='Example B')

        page2 = Page(title='Page 2', description='Second page test!')
        page2.add_field(name='Example C', value='Example D')

        page3 = Page(title='Page 3', description='Third page test!')
        page3.add_field(name='Example E', value='Example F')

        menu = PaginatedMenu(ctx)
        menu.add_pages([page1, page2, page3])
        # 绑定页面切换触发的回调方法
        menu.on_page_change(self.page_change_callback)
        await menu.open()


def setup(client):
    client.add_cog(Demo(client))

技术社区发布时的适用标签

  • 必选核心标签:
    • python:基础编程语言通用标签
    • discord.py:Discord Python开发生态的核心框架标签
    • dpymenus:第三方分页菜单库的专属标签,可精准匹配使用同库的开发者和维护者
  • 可选补充标签:
    • discord-bots:Discord机器人开发垂直领域标签
    • pycord/nextcord:如果项目基于discord.py的对应分支版本开发,可补充对应框架标签,避免检索偏差

内容的提问来源于stack exchange,提问作者MakerBen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 03:24:11