Kivy 基础知识问题(prolly .kv 文件)

Problem with basics of Kivy (prolly .kv file)

提问人:DR4NKR1D3R 提问时间:7/27/2022 最后编辑:DR4NKR1D3R 更新时间:7/27/2022 访问量:193

问:

你们能看看我的python/kivy代码吗?

main.py(复制自视频教程):

from kivy.app import App
from kivy.uix.widget import Widget

class MainWidget(Widget):
    pass

class TheLabApp(App):
    pass

TheLabApp().run()

thelab.kv:

#:kivy ! 2.1.0

MainWidget:

<MainWidget>:
    Button:
        text: "Hello"
        size: "200dp", "100dp"
        pos: "100dp", "200dp"

运行此代码最终会得到不同的结果。有时它会编译返回空窗口,有时它最终会出现以下(或类似)错误:

 Traceback (most recent call last):
   File "c:\Users\klaud\Documents\Studia\A Python\test\main.py", line 10, in <module>
     TheLabApp().run()
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\app.py", line 954, in run
     self._run_prepare()
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\app.py", line 923, in _run_prepare
     self.load_kv(filename=self.kv_file)
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\app.py", line 696, in load_kv
     root = Builder.load_file(rfilename)
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\lang\builder.py", line 305, in load_file
     return self.load_string(data, **kwargs)
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\lang\builder.py", line 372, in load_string
     parser = Parser(content=string, filename=fn)
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\lang\parser.py", line 483, in __init__
     self.parse(content)
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\lang\parser.py", line 590, in parse
     self.execute_directives()
   File "C:\Users\klaud\AppData\Roaming\Python\Python310\site-packages\kivy\lang\parser.py", line 569, in execute_directives
     raise ParserException(self, ln, 'Unknown directive')
 kivy.lang.parser.ParserException: Parser: File "c:\Users\klaud\Documents\Studia\A Python\test\thelab.kv", line 1:
 ...
 >>    1:#:kivy
       2:
       3:MainWidget:
 ...
 Unknown directive

代码是从 yt 复制的,在那里它工作得很好。你有什么想法吗?

蟒蛇 基维

评论

0赞 MattDMo 7/27/2022
请不要将文字作为图片发布。将文本复制并粘贴到您的问题中,并使用代码格式工具(按钮)正确格式化。图像不可搜索,屏幕阅读器无法为有视觉障碍的人解释图像,并且无法出于测试和调试目的进行复制。使用编辑链接修改您的问题。{}
0赞 ApuCoder 7/27/2022
从文件中的指令中删除“!”.kv

答:

0赞 MattDMo 7/27/2022 #1

根据文档,文件的第一行应该是.kv

#:kivy `1.0`

您支持的最低版本在哪里,或者只是您当前使用的版本。我有 2.1.0 版本,所以我的标题行是1.0

#:kivy 2.1.0

没有 .这对我来说效果很好。!

完全删除标题也有效。

评论

0赞 DR4NKR1D3R 7/27/2022
删除“!”后没有变化。我应该重新安装kivy吗?
0赞 MattDMo 7/27/2022
@DR4NKR1D3R确定使用的是 2.1.0 版本?试着放在那里,看看是否有效。如果没有,您当然可以尝试卸载并重新安装。1.0
0赞 DR4NKR1D3R 7/27/2022
现在没事了。我认为 VS 代码是一个问题。