【问题标题】:Getting " TypeError: 'NoneType' object is not subscriptable" error获取“ TypeError:'NoneType'对象不可下标”错误
【发布时间】:2021-02-05 21:48:10
【问题描述】:

我有以下 Python 代码和 Kivy 配置文件,直接取自教程:

import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.core.window import Window

Builder.load_file('float_layout.kv')

class MyLayout(Widget):
    pass

class AwesomeApp(App):
    def build(self):
        Window.clearcolor = (1,1,1,1)
        return MyLayout()

if __name__ == '__main__':
    AwesomeApp().run()
<Button>
    font_size: 32
    size_hint: (0.3, 0.3)

<MyLayout>

    FloatLayout:
        size: root.width, root.height

            Button:
                text: "q1"

            Button:
                text: "q2"

            Button:
                text: "C"

            Button:
                text: "q3"

            Button:
                text: "q4"

我收到以下错误消息:

[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
 Traceback (most recent call last):
   File "/Users/JIM/PycharmProjects/test_float/main.py", line 8, in <module>
     Builder.load_file('float_layout.kv')
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/builder.py", line 306, in load_file
     return self.load_string(data, **kwargs)
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/builder.py", line 373, in load_string
     parser = Parser(content=string, filename=fn)
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/parser.py", line 402, in __init__
     self.parse(content)
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/parser.py", line 511, in parse
     objects, remaining_lines = self.parse_level(0, lines)
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/parser.py", line 614, in parse_level
     _objects, _lines = self.parse_level(
   File "/Users/JIM/PycharmProjects/test_float/venv/lib/python3.9/site-packages/kivy/lang/parser.py", line 674, in parse_level
     if current_property[:3] == 'on_':
 TypeError: 'NoneType' object is not subscriptable

怎么了?

【问题讨论】:

  • kv 中的缩进错误。
  • 一切都是四个空格的倍数。你能说得更具体点吗?
  • 对我而言,size:Button: 中的 kv 应该从同一列开始 - 这意味着您拥有 "Bad indentation in your kv"

标签: python python-3.x kivy nonetype


【解决方案1】:

你有错误的缩进。 size:Button: 必须从同一列开始。

<Button>
    font_size: 32
    size_hint: (0.3, 0.3)

<MyLayout>
    FloatLayout:
        size: root.width, root.height
        Button:
            text: "q1"
        Button:
            text: "q2"
        Button:
            text: "C"
        Button:
            text: "q3"
        Button:
            text: "q4"

【讨论】:

  • 谢谢!做到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多