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,根据屏幕名称更改工具栏标题的主要内容,如果未能解决你的问题,请参考以下文章