【问题标题】:Kivy screen manager only accepts screen widgetKivy 屏幕管理器仅接受屏幕小部件
【发布时间】:2022-11-13 01:49:09
【问题描述】:

这是我的主要代码:

from kivy.clock import Clock
from kivy.uix.screenmanager import ScreenManager
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
Window.size = (350,580)

class LoginPage(MDApp):

    def build(self):
        global screen_manager
        screen_manager = ScreenManager()
        screen_manager.add_widget(Builder.load_file("pre-splash.kv"))
        screen_manager.add_widget(Builder.load_file("login.kv"))
        return screen_manager

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

这是我的 .kv 文件:

Screen:

    name: "pre-splash"
    MDFloatLayout:
        md_bg_color : 226/255, 0 , 48/255, 1
        Image:
            source:"AppData/Local/Temp/logo-no-background.png"
            size_hint: .26, .26
            canvas.before:
                Color:
                    rgb: 1, 1, 1, 1
                Ellipse:
                    size: 130, 130
                    pos: 110,250

好的,所以我对 Kivy 很陌生,所以我不了解一些主要概念,但这是我的 .kv 代码,它在这里给出了一个错误,说屏幕管理器只接受屏幕小部件。我已经包括了主要来源和 .kv 来源。我似乎找不到任何不合适的地方。我正在运行 kivy 1.1.1 。我正在尝试在我的应用程序中添加一个飞溅,但它给了我这个错误。

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    是的。 ScreenManager 仅管理屏幕小部件。 ScreenManager 不会管理 Screen widget 和 Screen 制作的自定义 widget 以外的任何东西。

    在你的 kivy 应用程序中添加启动画面是没有意义的。因为您可以灵活地在 buildozer.spec 文件中添加启动画面和所有这些内容。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      相关资源
      最近更新 更多