我创建了一个 ScreenManager,并为该 ScreenManager 创建了几个 Screen 实例。
我希望每个屏幕都显示一个 GridLayout 类。例如,假设您有:
class MainScreen(Screen):
...
class MainLayout(GridLayout):
...
当 MainScreen 是活动屏幕时,我希望显示 MainLayout。
有没有办法纯粹在 python 中做到这一点(即没有标记)?谢谢你。
有没有办法纯粹在 python 中做到这一点(即没有标记)?谢谢你。
您永远不需要使用 kivy 语言(我认为这就是您所说的标记的意思),尽管在可能的情况下强烈建议使用它,因为它使很多事情变得更容易。
尽管如此,要真正回答您的问题,您所要做的就是将您的 gridlayout 小部件添加到您的屏幕小部件中,例如
mainscreen = MainScreen()
mainlayout = MainLayout()
mainscreen.add_widget(mainlayout)
然后,当您在屏幕管理器中将当前屏幕设置为主屏幕时,您应该会看到 GridLayout。
编辑:如果不清楚,这通常是您将小部件添加到其他小部件的方式。当您看到 kv 语言中的示例时,例如
<MyScreen>:
GridLayout:
...
...最终,它被翻译成类似于上面的示例代码的东西——创建了一个 MyScreen 的实例,并使用 add_widget 向其中添加了一个 GridLayout。