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

如何修复Kivy框架进制转换器运行报错、界面不显示问题

相关错误截图
问题描述

运行基于Kivy框架开发的Number System Converter(进制转换器)程序时,已安装全部运行所需依赖,但程序启动后界面无法正常加载。
程序源码地址:NumberSystemConverter-python

完整错误日志
Traceback (most recent call last):
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\lang\builder.py", line 700, in _apply_rule
     setattr(widget_set, key, value)
   File "kivy\weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
   File "kivy\properties.pyx", line 520, in kivy.properties.Property.__set__
   File "kivy\properties.pyx", line 549, in kivy.properties.Property.set
   File "kivy\properties.pyx", line 748, in kivy.properties.NumericProperty.convert
   File "kivy\properties.pyx", line 769, in kivy.properties.NumericProperty.parse_list
 TypeError: Expected unicode, got float

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "c:\Users\HP\Downloads\Compressed\NumberSystemConverter-python-master\main.py", line 315, in <module>
     MyApp().run()
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\app.py", line 954, in run
     self._run_prepare()
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\app.py", line 924, in _run_prepare
     root = self.build()
   File "c:\Users\HP\Downloads\Compressed\NumberSystemConverter-python-master\main.py", line 311, in build
     return Container()
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\uix\boxlayout.py", line 145, in __init__
     super(BoxLayout, self).__init__(**kwargs)
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\uix\layout.py", line 76, in __init__
     super(Layout, self).__init__(**kwargs)
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\uix\widget.py", line 366, in __init__
     self.apply_class_lang_rules(
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\uix\widget.py", line 470, in apply_class_lang_rules
     Builder.apply(
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\lang\builder.py", line 540, in apply
     self._apply_rule(
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\lang\builder.py", line 709, in _apply_rule
     raise BuilderException(rule.ctx, rule.line,
 kivy.lang.builder.BuilderException: Parser: File "c:\Users\HP\Downloads\Compressed\NumberSystemConverter-python-master\my.kv", line 255:
 ...
     253:                MDIconButton:
     254:                    user_font_size: "32sp"
 >>  255:                    user_font_size:(dp(48), dp (48))
     256:                    icon: "delete-circle-outline"
     257:                    pos_hint: {"center_x": .9, "center_y": .24}
 ...
 TypeError: Expected unicode, got float
   File "C:\Users\HP\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kivy\lang\builder.py", line 700, in _apply_rule
     setattr(widget_set, key, value)
   File "kivy\weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
   File "kivy\properties.pyx", line 520, in kivy.properties.Property.__set__
   File "kivy\properties.pyx", line 549, in kivy.properties.Property.set
   File "kivy\properties.pyx", line 748, in kivy.properties.NumericProperty.convert
   File "kivy\properties.pyx", line 769, in kivy.properties.NumericProperty.parse_list
错误原因

报错栈已明确指向项目目录下my.kv文件第255行,此处存在两处错误:

  • 同一MDIconButton组件重复声明user_font_size属性:第254行已将该属性赋值为"32sp",第255行再次对同一属性赋值,不符合KV语言规则
  • 属性传参类型错误:user_font_size是KivyMD中用于控制图标字体大小的数值类属性,仅接受单个带单位的字符串或数值参数,不支持元组格式输入。第255行传入的(dp(48), dp (48))是控件尺寸的传参格式,和该属性的要求完全不匹配,因此触发类型错误。
修复方法

打开项目中的my.kv文件,定位到第255行,直接删除整行错误配置user_font_size:(dp(48), dp (48))即可正常启动程序。
如果需要调整该删除按钮的控件尺寸,新增独立的size属性进行配置,不要将尺寸参数传入user_font_size属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:01:14