我有以下 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
怎么了?
答案 0 :(得分: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"