Kivy,根据屏幕名称更改工具栏标题

Posted

技术标签:

【中文标题】Kivy,根据屏幕名称更改工具栏标题【英文标题】:Kivy, changing toolbartitle based on screenname 【发布时间】:2020-12-27 04:35:30 【问题描述】:

如何根据我所在的屏幕更改我在 kivy(md) 中的工具栏标题。当我进入屏幕时,我已经能够设置标题,但我也希望在我离开屏幕时改变它。为什么我无法在屏幕管理器中设置 while 语句,例如“if screen_manager.current = "screen": toolbar.title = "new title"" 之类的?

对于 Kivy 中的我来说,似乎我总是需要按下按钮或类似的东西来触发事件或更改。但我想知道如何设置值,例如工具栏标题,而不需要按钮或其他东西来触发更改。

【问题讨论】:

【参考方案1】:

您可以使用current_screen 属性,并执行以下操作:

class Manager(ScreenManager):
    def on_current_screen(self, sm, screen):
        toolbar.title = screen.name

这假定toolbar 是在某处定义的。

【讨论】:

【参考方案2】:

所以我通过更多地阅读绑定方法来解决它。我之前知道它,但只将它用于事件,不知道您可以在进行更改时使用它。我通过这样做解决了它,

self.screen_manager.bind(current=callback)

def 回调(self, obj, value) : 如果 screen_manager.current = "第一个屏幕" : toolbar.title = "一些字符串" 别的: toolbar.title = "其他字符串"

所有这些代码都在一个类中。

【讨论】:

以上是关于Kivy,根据屏幕名称更改工具栏标题的主要内容,如果未能解决你的问题,请参考以下文章

更改 Kivy 中的弹出文本

Kivy - 如何根据显示大小设置窗口大小?

更改两个不同 kivy 屏幕的大小

如何在 Kivy 中从 python 代码更改屏幕

从 Kivy 的另一个屏幕更改小部件

Kivy:使用 on_press 事件在屏幕管理器中更改屏幕