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

Kivy中多条件设置app.root.current仅最后一条生效问题求助

问题解决:Kivy按钮多条件判断仅最后一条生效的修复

你的问题出在连续赋值语句的覆盖逻辑:当前的两行app.root.current = ...是顺序执行的,不管第一行的条件是否成立,第二行都会执行并覆盖第一行的结果。比如即使第一个日期密码匹配,第二行因为不满足第二个条件,会把current重新设为"fourth",最终只有最后一条判断的结果会保留。

修复方案:改用if-elif-else分支判断

在Kivy的KV语言中支持多行条件分支,把逻辑改成按顺序判断的结构,这样只会执行第一个满足的分支,不会被后续语句覆盖:

Button:
    font_name: "Georgiai"
    font_size: 20
    text: "Enter"
    size_hint: 0.5, 0.5
    background_color: "#00FFCE"
    on_release:
        if date.text == "01.02.2023" and password.text == "Si":
            app.root.current = "fifth"
        elif date.text == "02.02.2023" and password.text == "te":
            app.root.current = "seis"
        else:
            app.root.current = "fourth"

逻辑说明

  • 先检查第一个日期和密码的匹配条件,满足则切换到"fifth"窗口
  • 若第一个不满足,再检查第二个匹配条件,满足则切换到"seis"窗口
  • 两个条件都不满足时,默认切换到"fourth"窗口

这样就能按预期执行多条件判断,不会出现覆盖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:20:26