1

我创建了一个 ScreenManager,并为该 ScreenManager 创建了几个 Screen 实例。

我希望每个屏幕都显示一个 GridLayout 类。例如,假设您有:

class MainScreen(Screen):
   ...

class MainLayout(GridLayout):
   ...

当 MainScreen 是活动屏幕时,我希望显示 MainLayout。

有没有办法纯粹在 python 中做到这一点(即没有标记)?谢谢你。

4

1 回答 1

4

有没有办法纯粹在 python 中做到这一点(即没有标记)?谢谢你。

您永远不需要使用 kivy 语言(我认为这就是您所说的标记的意思),尽管在可能的情况下强烈建议使用它,因为它使很多事情变得更容易。

尽管如此,要真正回答您的问题,您所要做的就是将您的 gridlayout 小部件添加到您的屏幕小部件中,例如

mainscreen = MainScreen()
mainlayout = MainLayout()
mainscreen.add_widget(mainlayout)

然后,当您在屏幕管理器中将当前屏幕设置为主屏幕时,您应该会看到 GridLayout。

编辑:如果不清楚,这通常是您将小部件添加到其他小部件的方式。当您看到 kv 语言中的示例时,例如

<MyScreen>:
     GridLayout:
         ...

...最终,它被翻译成类似于上面的示例代码的东西——创建了一个 MyScreen 的实例,并使用 add_widget 向其中添加了一个 GridLayout。

于 2013-09-21T20:54:54.897 回答