我创建了一个 ScreenManager,并为该 ScreenManager 创建了几个 Screen 实例。
我希望每个屏幕都显示一个 GridLayout 类。例如,假设您有:
class MainScreen(Screen):
...
class MainLayout(GridLayout):
...
当 MainScreen 是事件屏幕时,我希望显示 MainLayout。
有没有办法完全在 python 中执行此操作(即没有标记)?谢谢。
最佳答案
Is there a way to do this purely in python (i.e. without markup)? Thank you.
你永远不需要使用 kivy 语言(我假设这就是你所说的标记的意思),尽管在可能的情况下强烈推荐使用它,因为它使很多事情变得更容易。
尽管如此,要真正回答您的问题,您所要做的就是将您的 gridlayout 小部件添加到您的屏幕小部件,例如
mainscreen = MainScreen()
mainlayout = MainLayout()
mainscreen.add_widget(mainlayout)
然后当您在屏幕管理器中将当前屏幕设置为主屏幕时,您应该会看到 GridLayout。
编辑:如果不清楚,这通常是您将小部件添加到其他小部件的方式。当您看到 kv 语言的示例时,例如
<MyScreen>:
GridLayout:
...
...最终,它被翻译成与上面的示例代码非常相似的内容 - 创建了一个 MyScreen 实例,并使用 add_widget 向其添加了一个 GridLayout。
关于python - 将屏幕与 kivy 中的 GridLayout 类相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937360/