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

运行KivyMD入门HelloWorld示例报错:AttributeError: 'NoneType'无size属性

解决KivyMD Hello World示例的AttributeError: 'NoneType' object has no attribute 'size'错误

这个错误通常是因为KivyMD组件需要依赖App实例的主题配置,直接返回MDLabel作为根部件时,部分版本的KivyMD无法正确初始化组件的上下文环境。可以通过以下几种方式解决:

方案1:将MDLabel放入布局容器中

修改代码,用MDBoxLayout作为根容器,确保组件在正确的布局上下文中初始化:

from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.uix.boxlayout import MDBoxLayout


class MainApp(MDApp):
    def build(self):
        layout = MDBoxLayout(orientation='vertical')
        layout.add_widget(MDLabel(text="Hello, World", halign="center"))
        return layout


MainApp().run()

方案2:显式初始化Theme类

在App类中提前初始化theme_cls,确保主题配置加载完成:

from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.theming import ThemeManager


class MainApp(MDApp):
    def __init__(self, **kwargs):
        self.theme_cls = ThemeManager()
        super().__init__(**kwargs)
    
    def build(self):
        return MDLabel(text="Hello, World", halign="center")


MainApp().run()

方案3:检查版本兼容性

确保Kivy和KivyMD版本匹配,比如:

  • Kivy 2.1.0 搭配 KivyMD 1.1.1
  • Kivy 2.2.0 搭配 KivyMD 1.2.0

可以用pip重新安装指定版本:

pip install kivy==2.1.0 kivymd==1.1.1

内容的提问来源于stack exchange,提问作者johnny kennedy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:50:55