我有一个具有多个屏幕的应用程序(使用ScreenManager),并且希望从其他任何屏幕返回主屏幕:不活动30秒钟以上或单击“主页”按钮。
按钮: 我可以在.kv文件的每个屏幕上添加一个按钮,然后绑定以下on_press方法:
on_press:
screen_manager.transition.direction = 'left'
screen_manager.transition.duration = 0.5
screen_manager.current = 'main_screen'
是否有更好的方法在所有屏幕上添加按钮,而不是在每个屏幕上都重复此按钮?这还需要我确保按钮在每个屏幕上的位置完全相同。
自动检查: 在屏幕上时,是否有办法检查未触摸屏幕多长时间,如果该时间超过30s,则从上方的按钮调用该方法?
我尝试将.kv文件中的图形代码和python文件中的代码逻辑分开,因此我对涉及这两者的答案感到满意。 非常感谢您提供任何指示,渴望学习更多的知识!
答案 0 :(得分:0)
您可以为此目的在kv
文件中创建一个自定义按钮:
<MyReturnButton@Button>:
text: 'Return'
pos_hint: {'center_x':0.5, 'y':0}
size_hint: None, None
size: self.texture_size
on_press:
screen_manager.transition.direction = 'left'
screen_manager.transition.duration = 0.5
screen_manager.current = 'main_screen'
然后,只需添加:
MyReturnButton:
对于kv
所在的任何屏幕,遵循Button
规则。当然,size
,pos_hint
和其他任何属性都可以设置为您选择。
关于自动屏幕切换,您可以使用Clock.schedule_once
的{{1}}方法中的on_enter
来设置计时器,并使用Screen
方法来重置计时器:
on_touch_down