Kivy:是否在不活动或按下按钮时返回主屏幕?

我有一个具有多个屏幕的应用程序(使用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文件中的代码逻辑分开,因此我对涉及这两者的答案感到满意。 非常感谢您提供任何指示,渴望学习更多的知识!

iloveuvm 回答:Kivy:是否在不活动或按下按钮时返回主屏幕?

您可以为此目的在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规则。当然,sizepos_hint和其他任何属性都可以设置为您选择。

关于自动屏幕切换,您可以使用Clock.schedule_once的{​​{1}}方法中的on_enter来设置计时器,并使用Screen方法来重置计时器:

on_touch_down
本文链接:https://www.f2er.com/3124097.html

大家都在问