首页 > 解决方案 > 显示错误 ValueError 的选项卡:MDTabsLabel.color 的格式无效(得到 [])-Kivymd

问题描述

实际上,当我在 kivymd 中使用选项卡时出现错误。我尝试使用它们,因为它是在此处提供的。我收到以下错误:

 Traceback (most recent call last):
   File "kivy/properties.pyx", line 2023, in kivy.properties.ColorProperty.convert
   File "kivy/properties.pyx", line 2041, in kivy.properties.ColorProperty.parse_list
 ValueError: Invalid value for color (got [])
 
 The above exception was the direct cause of the following exception:
 
 Traceback (most recent call last):
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/lang/builder.py", line 701, in _apply_rule
     setattr(widget_set, key, value)
   File "kivy/weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
   File "kivy/properties.pyx", line 498, in kivy.properties.Property.__set__
   File "kivy/properties.pyx", line 527, in kivy.properties.Property.set
   File "kivy/properties.pyx", line 2025, in kivy.properties.ColorProperty.convert
 ValueError: MDTabsLabel.color has an invalid format (got [])
 
 During handling of the above exception, another exception occurred:
 
 Traceback (most recent call last):
   File "/home/ibn-e-wajid-al-medki/pythonProject/store.py", line 317, in <module>
     Example().run()
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/app.py", line 949, in run
     self._run_prepare()
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/app.py", line 944, in _run_prepare
     self.dispatch('on_start')
   File "kivy/_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
   File "/home/ibn-e-wajid-al-medki/pythonProject/store.py", line 300, in on_start
     self.root.ids.tabs.add_widget(Tab(text=name_tab))
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/floatlayout.py", line 65, in __init__
     super(FloatLayout, self).__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/layout.py", line 76, in __init__
     super(Layout, self).__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivymd/uix/tab.py", line 374, in __init__
     self.tab_label = MDTabsLabel(tab=self)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivymd/uix/tab.py", line 328, in __init__
     super().__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/behaviors/togglebutton.py", line 84, in __init__
     super(ToggleButtonBehavior, self).__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/behaviors/button.py", line 121, in __init__
     super(ButtonBehavior, self).__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/label.py", line 318, in __init__
     super(Label, self).__init__(**kwargs)
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/widget.py", line 359, in __init__
     self.apply_class_lang_rules(
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/uix/widget.py", line 463, in apply_class_lang_rules
     Builder.apply(
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/lang/builder.py", line 541, in apply
     self._apply_rule(
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/lang/builder.py", line 710, in _apply_rule
     raise BuilderException(rule.ctx, rule.line,
 kivy.lang.builder.BuilderException: Parser: File "<inline>", line 19:
 ...
      17:        )
      18:    color:
 >>   19:        self.text_color_active if self.state == 'down'         else self.text_color_normal
      20:    on_x: self._trigger_update_tab_indicator()
      21:    on_width: self._trigger_update_tab_indicator()
 ...
 ValueError: MDTabsLabel.color has an invalid format (got [])
   File "/home/ibn-e-wajid-al-medki/pythonProject/venv/lib/python3.8/site-packages/kivy/lang/builder.py", line 701, in _apply_rule
     setattr(widget_set, key, value)
   File "kivy/weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
   File "kivy/properties.pyx", line 498, in kivy.properties.Property.__set__
   File "kivy/properties.pyx", line 527, in kivy.properties.Property.set
   File "kivy/properties.pyx", line 2025, in kivy.properties.ColorProperty.convert
 

Process finished with exit code 1

虽然代码与那里提供的代码相同,但带有选项卡图标的示例,我收到了这个错误。任何帮助表示赞赏

我正在使用 pycharm、ubuntu 20.04 和 python 3.8 kivy 1.11.1 和 kivymd 0.104.1。如果您需要其他任何东西,请让我现在。

标签: pythontabskivykivymd

解决方案


我认为这在 kivyMD 存储库中已修复,只是尚未发布。

您可以通过直接引用 repo 来安装更新的版本。这个版本通过了内部测试并为我解决了这个问题。它还尝试了您提到的选项卡示例,它也适用于我。

pip install https://github.com/kivymd/KivyMD/archive/b70abb5.zip

推荐阅读