首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kivy中启动Splash屏幕超时后的主应用程序

在Kivy中启动Splash屏幕超时后的主应用程序
EN

Stack Overflow用户
提问于 2018-03-23 15:36:42
回答 1查看 1K关注 0票数 0

我想在python中创建一个基于GUI的应用程序。我正在使用来自FileBrowserKivy作为主要应用程序。

我想显示一个飞溅的屏幕大约5秒,然后我想启动主应用程序,即FileBrowser

我提供的代码文件浏览器和飞溅屏幕,我正在使用下面。

代码语言:javascript
复制
# FileBrowser
class TestApp(App):

    def build(self):

        user_path = os.path.join(browser_base.get_home_directory(), 'Documents')
        browser = browser_base.FileBrowser(select_string='Select',
                              favorites=[(user_path, 'Documents')])
        browser.bind(on_success=self._fbrowser_success,
                     on_canceled=self._fbrowser_canceled,
                     on_submit=self._fbrowser_submit)
        return browser

    def _fbrowser_canceled(self, instance):
        print('cancelled, Close self.')
        self.root_window.hide()
        sys.exit(0)


    def _fbrowser_success(self, instance): # select pressed
        global file

        print(instance.selection)

        file = instance.selection[0]



    def _fbrowser_submit(self, instance): # clicked on the file
        global file

        print(instance.selection)

        file = instance.selection[0]

TestApp().run()

# Splash Screen..!!

class timer():
    def work1(self):
        print('Hello')


class arge(App):
    def build(self):
        wing = Image(source='grey.png', pos=(800, 800))
        animation = Animation(x=0, y=0, d=2, t='out_bounce')
        animation.start(wing)

        Clock.schedule_once(timer.work1, 5)
        return wing

arge().run()

我想运行这个应用程序5秒,然后启动主应用程序,即由FileBrowser类定义的TestApp

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-23 17:17:43

您正在为每个屏幕创建不同的应用程序。相反,您所需要的只是ScreenManager。下面是一个简单的示例,让您了解ScreenManager是如何工作的:

代码语言:javascript
复制
class PgBrowser(Screen):
    # Builder.load_file("browser.kv")

    def on_pre_enter(self, *args):
        filechooser = FileChooserIconView(path=os.path.expanduser('~'),
                                          size=(self.width, self.height),
                                          pos_hint={"center_x": .5, "center_y": .5})
        filechooser.bind(on_submit=self.on_selected)
        self.add_widget(filechooser)

    def on_selected(self, widget_name, file_path, mouse_pos):
        print "Selected: %s" % file_path[0]

class PgSplash(Screen):
    # Builder.load_file("splash.kv")

    def skip(self, dt):
        screen.switch_to(pages[1])

    def on_enter(self, *args):
        Clock.schedule_once(self.skip, 2)

        print "Wait..."

pages = [PgSplash(name="PgSplash"),
         PgBrowser(name="PgBrowser")]

screen = ScreenManager()
screen.add_widget(pages[0])

class myApp(App):
    def build(self):
        screen.current = "PgSplash"
        return screen

myApp().run()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49453373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档