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
相关产品推荐
相关产品推荐

