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



如何根据我所在的屏幕更改kivy(md(中的工具栏标题。我可以在我进入屏幕时设置标题,但我也希望在我离开屏幕时更改标题。为什么我不能在我的屏幕管理器中设置一个while语句,例如";如果screen_manager.current=";屏幕":工具栏标题=";新标题"&";,或者类似的东西?

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

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

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

这假设toolbar是在某个地方定义的。

所以我通过阅读更多关于绑定方法的内容来解决这个问题。我以前知道它,但只在活动中使用过,不知道你可以在做出改变时使用它。我通过行动解决了这个问题,

self.screen_manager.bind(current=回调(

def回调(self,obj,value(:如果screen_manager.current=";第一屏幕":工具栏标题=";一些字符串";其他:工具栏标题=";一些其他字符串";

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

最新更新