You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KivyMD中使用GIF制作启动加载页失败,请求排查解决

KivyMD启动加载GIF页面报错排查求助

无法通过代码实现KivyMD启动加载动画,因此将视频转换为GIF用于加载页,但代码运行失败且报错信息不清晰,请求协助排查。

splashloading.kv 代码

MDFloatLayout:
    md_bg_color:1,1,1,1
    md_bg_color: (255/255, 250/255, 245/255, 1)
        Image:
            source:"assets/start.gif"
            size_hint:.50,.50
            pos_hint:{"center_x":.5,"center_y":.8}

main.py 代码

from kivy.uix.screenmanager import ScreenManager
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.core.text import LabelBase

Window.size =(350, 580)


class StartPage(MDApp):
    def build(self):
        LabelBase.register(name='Lemonada',fn_regular='fonts/Lemonada-VariableFont_wght.ttf')
        global screen_manager
        screen_manager = ScreenManager()
        #screen_manager.add_widget(Builder.load_file("firstUse.kv"))
        #screen_manager.add_widget(Builder.load_file("main.kv"))
        screen_manager.add_widget(Builder.load_file("splashloading.kv"))
        return screen_manager
    def Login(self, *args):
        screen_manager.current = "Login"

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

报错信息(翻译后)

kv语言语法错误:缩进无效,MDFloatLayout:后预期正确的缩进块;同时ScreenManager仅支持添加Screen类型控件,无法直接加载MDFloatLayout。

问题排查与修复方案

  • 修复kv文件缩进与结构错误:Image是MDFloatLayout的子控件,需与md_bg_color同级缩进,不能嵌套在属性下方;同时移除重复的md_bg_color定义,外层包裹Screen以适配ScreenManager要求。修正后的kv代码:
Screen:
    name: "SplashLoading"
    MDFloatLayout:
        md_bg_color: (255/255, 250/255, 245/255, 1)
        Image:
            source:"assets/start.gif"
            size_hint:.50,.50
            pos_hint:{"center_x":.5,"center_y":.8}
  • 验证文件路径:确保项目根目录存在assets文件夹,且start.gif文件在该文件夹内,路径拼写无错误。
  • 完善页面切换逻辑:Login方法中切换的"Login"页面需提前添加到ScreenManager中,否则会触发页面不存在的错误。

内容的提问来源于stack exchange,提问作者Yassin Mrd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:41:58