猕猴桃中的屏幕管理器问题

时间:2020-05-02 22:26:45

标签: python kivy

我正在尝试Kivy。当我尝试使用屏幕管理器时,当应用程序运行时,出现黑屏,什么也没出现

那是我的代码。我不知道是什么问题。看来GridLayout没有显示在屏幕上。

import kivy
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.graphics import *
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, SlideTransition

class load_file_screen(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.my_layout = GridLayout(cols=1)
        self.my_layout.cols = 1
        self.label = Label(text="Loading files from here")
        self.button = Button(text="Click to change")
        self.button.bind(on_press=self.changer)
        self.my_layout.add_widget(self.label)
        self.my_layout.add_widget(self.button)

    def changer(self, *args):
        self.manager.current = "ViewFile"

class view_file_screen(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.my_layout = GridLayout(cols=1)
        self.label = Label(text="View File here")
        self.button = Button(text="Click to change")
        self.button.bind(on_press=self.changer)
        self.my_layout.add_widget(self.label)
        self.my_layout.add_widget(self.button)

    def changer(self, *args):
        self.manager.current = "LoadFile"

class my_app(App):
    def build(self):
        self.my_screen_manger = ScreenManager(transition=SlideTransition())
        self.my_screen_manger.add_widget(load_file_screen(name="LoadFile"))
        self.my_screen_manger.add_widget(view_file_screen(name="ViewFile"))
        # self.my_screen_manger.current = "LoadFile"
        return self.my_screen_manger

application = my_app()
application.run()

1 个答案:

答案 0 :(得分:1)

在您的n+1view_file_screen中,您都需要添加以下行:

load_file_screen

self.add_widget(self.my_layout) 方法中。

相关问题