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

时间:2020-09-20 05:38:30

标签: python oop kivy screen

大家。怎么样了?

我找不到与此相关的任何问题。如果有的话,很高兴有人可以引用它并关闭线程。

我是Kivy的完整入门者,但不是编程专家。我正在为移动和Webdev学习python。

Python版本:3.8 Kivy版本: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专家,但我正在研究它。据我所知,我应该选择一个并且只有一个继承自“ Screen”类的类(来自kivy.uix.screenmanager),并将屏幕作为相同类型的对象进行处理。

现在,是goto方法还是有一种更聪明的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

您不需要为每个Screen创建一个新类。这只是一种方便的方法,它使您可以建立kv规则,例如:

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

但是您可以执行以下操作:

ScreenManager:
    Screen:
        name: 'login'
        Label:
            text: 'Some text here'
    Screen:
        name: 'screen2'
    .
    .
    .
相关问题