在 kivy 中加载构建器时出错:缩进无效,必须是 _ 空格的倍数
Error while builder loading in kivy: Invalid indentation, must be a multiple of _ spaces
所以我一直在开发一个 kivy 应用程序,但在使用 Builder 加载一些 kv 语言时遇到了一些问题,当我 运行 它时代码崩溃了。
错误信息:
File "C:\Users\areef\PycharmProjects\pythonProject1\venv\venev2\lib\site-packages\kivy\lang\parser.py", line 566, in parse_level
raise ParserException(self, ln,
kivy.lang.parser.ParserException: Parser: File "<inline>", line 3:
...
1:Screen:
2: FloatLayout:
>> 3: Button:
4: text: "It works!"
5: pos_hint: {"x": 0.1, "y": 0.7}
...
Invalid indentation, must be a multiple of 8 spaces
代码:
from kivy.app import App
from kivy.lang import Builder
kv = """Screen:
FloatLayout:
Button:
text: "It works!"
pos_hint: {"x": 0.1, "y": 0.7}
text_size: self.size
"""
class MyApp(App):
def build(self):
self.screen = Builder.load_string(kv)
return self.screen
if __name__ == "__main__":
MyApp().run()
我做错了什么,有人可以帮我解决这个错误吗?
当您使用三引号字符串时,每行的前导空格都是字符串的一部分。 cube
字符串中的第一个缩进是 20 个空格,因此所有缩进都应该是它的倍数。要解决这个问题,只需消除所有这些额外的空间。尝试类似的东西:
cube = """
Label:
text:"Side:"
pos_hint: {"x":1.1, "y":0.7}
text_size: self.size
Label:
text:"Volume:"
.
.
.
其中 Labels
为零缩进。这将解决您看到的错误,并且会出现另一个错误(与格式无关)。
所以我一直在开发一个 kivy 应用程序,但在使用 Builder 加载一些 kv 语言时遇到了一些问题,当我 运行 它时代码崩溃了。
错误信息:
File "C:\Users\areef\PycharmProjects\pythonProject1\venv\venev2\lib\site-packages\kivy\lang\parser.py", line 566, in parse_level
raise ParserException(self, ln,
kivy.lang.parser.ParserException: Parser: File "<inline>", line 3:
...
1:Screen:
2: FloatLayout:
>> 3: Button:
4: text: "It works!"
5: pos_hint: {"x": 0.1, "y": 0.7}
...
Invalid indentation, must be a multiple of 8 spaces
代码:
from kivy.app import App
from kivy.lang import Builder
kv = """Screen:
FloatLayout:
Button:
text: "It works!"
pos_hint: {"x": 0.1, "y": 0.7}
text_size: self.size
"""
class MyApp(App):
def build(self):
self.screen = Builder.load_string(kv)
return self.screen
if __name__ == "__main__":
MyApp().run()
我做错了什么,有人可以帮我解决这个错误吗?
当您使用三引号字符串时,每行的前导空格都是字符串的一部分。 cube
字符串中的第一个缩进是 20 个空格,因此所有缩进都应该是它的倍数。要解决这个问题,只需消除所有这些额外的空间。尝试类似的东西:
cube = """
Label:
text:"Side:"
pos_hint: {"x":1.1, "y":0.7}
text_size: self.size
Label:
text:"Volume:"
.
.
.
其中 Labels
为零缩进。这将解决您看到的错误,并且会出现另一个错误(与格式无关)。