进入屏幕3秒钟后如何更改屏幕?

时间:2019-08-19 20:05:45

标签: python kivy

我想在屏幕1停留3秒后将屏幕从屏幕1切换到屏幕2。

程序可以编译,但它只停留在Screen1上,我希望它在进入screen1后3秒钟后更改为screen2。

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.uix.image import Image
from kivy.clock import Clock

class Screen1(Screen):
    def callNext(self, dt):
        self.manager.current = 'screen2'

class Screen2(Screen):
    pass

kv = Builder.load_file('my.kv')

class MyApp(App):
    def build(self):
        return Screen1()
        return kv

if __name__ == '__main__':
    MyApp().run()

kv文件:

#:import Clock kivy.clock.Clock
<Screen1>:
    name: 'screen1'
    on_enter:
        Clock.schedule_once(self.callNext, 3)
    canvas.before:
        Rectangle:
            pos: self.pos
            size: self.size
            source: 'logokivy.png'

<Screen2>:
    name: 'screen2'
    Button:
        text: 'Hello'

2 个答案:

答案 0 :(得分:0)

您的代码未使用ScreenManager。将根窗口小部件设置为具有两个屏幕作为子屏幕的ScreenManager,看起来其他所有东西都应该可以正常工作。

答案 1 :(得分:0)

您应该能够flutter doctor并使用C:\flutter>flutter doctor -v [√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.10240], locale en-US) • Flutter version 1.7.8+hotfix.4 at C:\flutter • Framework revision 20e59316b8 (5 weeks ago), 2019-07-18 20:04:33 -0700 • Engine revision fee001c93f • Dart version 2.4.0 [X] Android toolchain - develop for Android devices X ANDROID_HOME = C:\tools but Android SDK not found at this location. [!] Android Studio (not installed) • Android Studio not found; download from https://developer.android.com/studio/index.html (or visit https://flutter.dev/setup/#android-setup for detailed instructions). [√] VS Code (version 1.37.1) • VS Code at C:\Users\Cliff\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.3.0 [!] Connected device ! No devices available ! Doctor found issues in 3 categories. C:\flutter> 等待3秒钟,然后将其关闭。