You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KivyMD应用返回MenuScreen触发ScreenManagerException错误求助

问题分析与修复方案

核心问题

出现 No Screen with name "MenuScreen" 错误的原因有两个:

  1. Kivy 屏幕的名称属性是 name,但你在 kv 文件中错误使用了葡萄牙语的 nome
  2. 返回按钮尝试跳转的屏幕名称与实际定义的不匹配

具体修复步骤

1. 修正 kv 文件中的属性名错误

将 <MenuScreen> 和 <PerfilPaciente> 中的 nome 改为 Kivy 标准属性 name:

<MenuScreen>:
    name:'menu'  # 替换原有的 nome:'menu'
    # 其余代码保持不变

<PerfilPaciente>:
    name:'PerfilPaciente'  # 替换原有的 nome:'PerfilPaciente'
    # 其余代码保持不变

2. 修改返回按钮的目标屏幕名称

在 <TabelaPacientes> 的返回按钮中,将目标名称从 MenuScreen 改为实际定义的 menu:

<TabelaPacientes>:
    name:'TabelaPacientes'
    # 其余代码保持不变
    MDRectangleFlatButton:
        text:'Go back'
        on_press:root.manager.current='menu'  # 替换原有的 'MenuScreen'

3. 清理冗余代码

Python 文件中定义的 sm 变量完全未被使用(你的应用实际使用的是 kv 文件中创建的 ScreenManager),可以删除以下代码块:

sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(TabelaPacientes(name='TabelaPacientes'))
sm.add_widget(PerfilPaciente(name='PerfilPaciente'))

修复后逻辑说明

  • 正向跳转:从 menu 屏幕到 TabelaPacientes 屏幕的逻辑保持不变,因为目标名称匹配
  • 反向跳转:返回按钮现在指向正确的屏幕名称 menu,与 kv 文件中定义的一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:24:51