【发布时间】:2021-02-25 15:50:04
【问题描述】:
为什么不起作用?:
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
Screen:
MDFlatButton:
id: flat
text: root.gg
'''
class Test(MDApp):
def build(self):
gg = '123'
return Builder.load_string(KV)
Test().run()
错误:
Traceback (most recent call last):
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 242, in create_handler
return eval(value, idmap), bound_list
File "<string>", line 5, in <module>
File "kivy\weakproxy.pyx", line 32, in kivy.weakproxy.WeakProxy.__getattr__
AttributeError: 'Screen' object has no attribute 'gg'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 695, in _apply_rule
value, bound = create_handler(
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 245, in create_handler
raise BuilderException(rule.ctx, rule.line,
kivy.lang.builder.BuilderException: Parser: File "<inline>", line 5:
...
3: MDFlatButton:
4: id: flat
>> 5: text: root.gg
...
AttributeError: 'Screen' object has no attribute 'gg'
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 242, in create_handler
return eval(value, idmap), bound_list
File "<string>", line 5, in <module>
File "kivy\weakproxy.pyx", line 32, in kivy.weakproxy.WeakProxy.__getattr__
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\lolo\PycharmProjects\FindWord\FindWord.py", line 14, in <module>
Test().run()
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\app.py", line 949, in run
self._run_prepare()
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\app.py", line 919, in _run_prepare
root = self.build()
File "C:\Users\lolo\PycharmProjects\FindWord\FindWord.py", line 13, in build
return Builder.load_string(KV)
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 408, in load_string
self._apply_rule(
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\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 5:
...
3: MDFlatButton:
4: id: flat
>> 5: text: root.gg
...
BuilderException: Parser: File "<inline>", line 5:
...
3: MDFlatButton:
4: id: flat
>> 5: text: root.gg
...
AttributeError: 'Screen' object has no attribute 'gg'
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 242, in create_handler
return eval(value, idmap), bound_list
File "<string>", line 5, in <module>
File "kivy\weakproxy.pyx", line 32, in kivy.weakproxy.WeakProxy.__getattr__
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 695, in _apply_rule
value, bound = create_handler(
File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\kivy\lang\builder.py", line 245, in create_handler
raise BuilderException(rule.ctx, rule.line,
我需要 kv 文件来查看函数内部的变量。每个人都建议使用root,但这个错误阻止了我。 我需要完全使用'root.gg',应用程序不适合,因为当需要引用函数中的变量时应用程序不起作用。问题的上一版本here
看起来您的帖子主要是代码;请添加更多详细信息。
看起来您的帖子主要是代码;请添加更多详细信息。
看起来您的帖子主要是代码;请添加更多详细信息。
【问题讨论】:
标签: python python-3.x kivy kivy-language kivymd