我已经搜索并搜索了,但我就是不明白。从我从发布的答案中了解到,问题是该类没有定义或拼写错误,但我已经来回浏览了我的代码,但我看不到问题。现在我只是想获得没有功能的布局。我有两个文件,.py 和 .kv 文件,主要的 .py 是:
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
class Noughtsandcrosses(Widget):
pass
class nandxApp(App):
def build(self):
return Noughtsandcrosses()
if __name__ == "__main__":
nandxApp().run()
Run Code Online (Sandbox Code Playgroud)
.kv 文件是:
#:kivy 1.0
<Noughtsandcrosses>:
orientation: 'vertical'
size: self.size
Threebythreeone:
orientation: 'horizontal'
Button:
Image:
source: "blank.png"
size: 100, 100
Run Code Online (Sandbox Code Playgroud)
运行 .py 文件,这是我得到的错误:
Traceback (most recent call last):
File "nandx.py", line 24, in <module>
nandxApp().run()
File "C:\Users\Rayne\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\app.py", line 802, in run
root = self.build()
File "nandx.py", line 21, in build
return Noughtsandcrosses()
File "C:\Users\Rayne\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\uix\widget.py", line 345, in __init__
Builder.apply(self, ignored_consts=self._kwargs_applied_init)
File "C:\Users\Rayne\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\lang\builder.py", line 451, in apply
self._apply_rule(widget, rule, rule, ignored_consts=ignored_consts)
File "C:\Users\Rayne\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\lang\builder.py", line 526, in _apply_rule
cls = Factory_get(cname)
File "C:\Users\Rayne\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\factory.py", line 131, in __getattr__
raise FactoryException('Unknown class <%s>' % name)
kivy.factory.FactoryException: Unknown class <Threebythreeone>
Run Code Online (Sandbox Code Playgroud)
我正在努力学习 kivy,但遇到这样的随机错误令人沮丧,谁能指出我做错了什么。
您遇到了错误 kivy.factory.FactoryException: Unknown class <Threebythirdone> 因为您在<Noughtsandcrosses>小部件规则 nandx.kv中有一个子小部件Threebythirdone
\n\n我建议您查看编程指南 \xc2\xbb Kivy 基础知识和下面的示例。
\n\nfrom kivy.app import App\nfrom kivy.uix.boxlayout import BoxLayout\n\n\nclass Threebythreeone(BoxLayout):\n pass\n\n\nclass Noughtsandcrosses(BoxLayout):\n pass\n\n\nclass nandxApp(App):\n def build(self):\n return Noughtsandcrosses()\n\n\nif __name__ == "__main__":\n nandxApp().run()\nRun Code Online (Sandbox Code Playgroud)\n\n#:kivy 1.10.0\n\n<Threebythreeone>:\n # orientation: \'horizontal\' # Commented off because this is the default\n\n Button:\n Image:\n source: "blank.png"\n size: 100, 100\n\n<Noughtsandcrosses>:\n orientation: \'vertical\'\n size: self.size\n\n Threebythreeone:\nRun Code Online (Sandbox Code Playgroud)\n\n| 归档时间: |
|
| 查看次数: |
9427 次 |
| 最近记录: |