无法在 Kivy 上操作屏幕管理器

Can't manipulate Screen Manager on Kivy

提问人:Martin Samanez 提问时间:11/13/2023 更新时间:11/13/2023 访问量:15

问:

我真的是 Kivy 的新手,并开始学习 yersterday,但遇到了一个我找不到解决方案的问题。我知道我可以使用app.root.current使ScreenManager在屏幕之间切换。但是,我的屏幕管理器位于 Box 布局中,所以我尝试了 self.parent.current 和类似的变体,但我仍然无法让它工作。这是我的.kv文件的简化版本,其中包含与我的问题相关的所有必要信息。

Principal:

<Principal@BoxLayout>
    orientation: "vertical"
    TopLayout
        size_hint: 1,.18
    Ventanas
        id: ventanas

<Ventanas@ScreenManager>
    Actividades
        name: "Actividades"
        Label:
            text: "test1"
    Planes
        name: "Planes"
        Label:
            text: "test2"
    Estadisticas
        name: "Estadísticas"
        Label:
            text: "test2"

<TopLayout@RelativeLayout>
    # Navegador is a Spinner Dropdown
    Navegador:
        id: navegador
        text: ""
        background_color: (0,0,1,1)
        color: (0,0,0,0)
        size_hint: .3,0.95
        pos_hint: {"x":0.05,"top":0.975}
        values: 'Actividades', 'Planes', 'Estadísticas'
        on_text:
            app.root.ventanas.current = navegador.text

我真的很想找到一个解决方案,它并不意味着将屏幕管理器设置为主要布局,因为我不喜欢影响屏幕上每个元素的过渡。

提前致谢。

python kivy kivy语言 移动应用程序

评论

0赞 John Anderson 11/13/2023
尝试。app.root.ids.ventana.current = navegador.text
0赞 Martin Samanez 11/18/2023
这对我帮助很大。谢谢。@JohnAnderson

答: 暂无答案