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

KivyMD中如何点击MDTopAppBar左侧箭头返回主屏幕?

问题根源

Login_screen页面的返回按钮代码中引用了未定义的screen_manager变量,导致点击事件无法触发屏幕切换操作。

修复方法

修改KV文件中<Login_screen>内MDTopAppBar的left_action_items配置,替换为以下任一有效写法:

写法一:通过当前Screen的manager属性访问屏幕管理器

left_action_items: [["arrow-left", lambda *args: root.manager.current = "Screen_principal"]]

写法二:通过app.root直接访问屏幕管理器(App的build方法返回的就是ScreenManager实例)

left_action_items: [["arrow-left", lambda *args: app.root.current = "Screen_principal"]]
修改后的完整Login_screen KV代码片段
<Login_screen>:
    MDBoxLayout:
        orientation: 'vertical'
        MDTopAppBar:
            title: "Login"
            md_bg_color: "#e7e4c0"
            left_action_items: [["arrow-left", lambda *args: root.manager.current = "Screen_principal"]]
        MDBoxLayout:
            orientation: 'vertical'
            size_hint_y: 0.3
            Image:
                source: 'usuario.png'
                pos_hint: {'center_x': 0.5}
            MDLabel:
                text: 'Iniciar Sesion'
                halign: 'center'
                color: '#FF5A1E'
                font_size: '35dp'
                bold: True
                pos_hint: {'center_y': .5}
        # 其余原有代码保持不变
额外注意事项
  • 屏幕名称严格区分大小写:Python代码中注册Screen_principal时使用的名称是'Screen_principal',切换时必须完全匹配该字符串。
  • 检查是否有其他逻辑干扰:确保登录按钮的代码不会阻塞返回按钮的事件响应,当前代码中登录按钮的逻辑不影响返回功能。

内容的提问来源于stack exchange,提问作者Luis Piñerua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:50:26