我必须为每个 Kivy Screen 创建一个新的 class 吗?如果是这样,为什么?

Do I have to create a new class for each Kivy Screen? If so, why?

各位。最近怎么样?

我找不到与此相关的问题。如果有的话,如果有人可以参考并关闭线程,我将很高兴。

我是 Kivy 的初学者,但不是编程的初学者。我正在学习 python 用于移动和网络开发目的。

Python版本:3.8 基维版本:2.0.0 IDE:VS 代码社区


我正在编写代码:

import kivy
kivy.require('2.0.0')

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.lang import Builder


class LoginPage(Screen):
       pass

class SecondPage(Screen):
    pass

kv_file = Builder.load_file("layout_05.kv.txt")

class MainApp(App):
    def build(self):
        return kv_file

if(__name__=="__main__"):
    MainApp().run()

我在 Youtube 上看过一些教程,所有教程都以基本相同的方式处理屏幕创建和管理。到底是简单的给新人演示还是真实的,我就不知道了。

关键是,我不是 OOP 方面的专家,但我正在研究它。据我所知,我应该选择一个而且只有一个 class 继承自“Screen”class(来自 kivy.uix.screenmanager),并且将屏幕视为相同类型的对象。

现在,这是转到方法还是有更聪明的方法来处理它?

您不需要为每个 Screen 创建一个新的 class。这只是一种方便的方法,并允许您构建 kv 规则,例如:

<LoginPage>:
    name: 'login'
    Label:
       text: 'Some text here'
    .
    .
    .
ScreenManager:
    LoginPage:

但是你可以这样做:

ScreenManager:
    Screen:
        name: 'login'
        Label:
            text: 'Some text here'
    Screen:
        name: 'screen2'
    .
    .
    .