我正在尝试访问Kivy中的Camera小部件:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.camera import Camera
from kivy.logger import Logger
import logging
Logger.setLevel(logging.TRACE)
class MainApp(App):
title = 'wohoo'
def build(self):
pass
if __name__ == '__main__':
MainApp().run()
kv文件:
BoxLayout:
Camera:
id: camera
resolution: 1280,720
play: True
完整错误输出:
[TRACE ] [Cache ] Flushed category kv.texture from cache
[TRACE ] [Cache ] Flushed category kv.shader from cache
[DEBUG ] [Shader ] Fragment compiled successfully
[DEBUG ] [Shader ] Vertex compiled successfully
[DEBUG ] [ImageSDL2 ] Load </home/mark/.local/lib/python3.7/site-packages/kivy/data/glsl/default.png>
[TRACE ] [Image ] '/home/mark/.local/lib/python3.7/site-packages/kivy/data/glsl/default.png', populate to textures (1)
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[TRACE ] [Lang ] Found 0 rules for <kivy.uix.boxlayout.BoxLayout object at 0x7f14b22402f0>
[TRACE ] [Lang ] Found 1 rules for <kivy.uix.camera.Camera object at 0x7f14ab46c830>
Traceback (most recent call last):
File "/home/mark/.local/lib/python3.7/site-packages/kivy/lang/builder.py", line 700, in _apply_rule
setattr(widget_set, key, value)
File "kivy/weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
File "kivy/properties.pyx", line 497, in kivy.properties.Property.__set__
File "kivy/properties.pyx", line 839, in kivy.properties.ListProperty.set
File "kivy/properties.pyx", line 544, in kivy.properties.Property.set
File "kivy/properties.pyx", line 599, in kivy.properties.Property.dispatch
File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
File "kivy/_event.pyx", line 1120, in kivy._event.EventObservers._dispatch
File "/home/mark/.local/lib/python3.7/site-packages/kivy/uix/camera.py", line 103, in _on_index
resolution=self.resolution, stopped=True)
TypeError: 'NoneType' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 16, in <module>
MainApp().run()
File "/home/mark/.local/lib/python3.7/site-packages/kivy/app.py", line 828, in run
self.load_kv(filename=self.kv_file)
File "/home/mark/.local/lib/python3.7/site-packages/kivy/app.py", line 599, in load_kv
root = Builder.load_file(rfilename)
File "/home/mark/.local/lib/python3.7/site-packages/kivy/lang/builder.py", line 301, in load_file
return self.load_string(data, **kwargs)
File "/home/mark/.local/lib/python3.7/site-packages/kivy/lang/builder.py", line 405, in load_string
rule_children=rule_children)
File "/home/mark/.local/lib/python3.7/site-packages/kivy/lang/builder.py", line 707, in _apply_rule
e), cause=tb)
kivy.lang.builder.BuilderException: Parser: File "/home/mark/venv/main.kv", line 4:
...
2: Camera:
3: id: camera
>> 4: resolution: 1280,720
5: play: True
...
TypeError: 'NoneType' object is not callable
File "/home/mark/.local/lib/python3.7/site-packages/kivy/lang/builder.py", line 700, in _apply_rule
setattr(widget_set, key, value)
File "kivy/weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
File "kivy/properties.pyx", line 497, in kivy.properties.Property.__set__
File "kivy/properties.pyx", line 839, in kivy.properties.ListProperty.set
File "kivy/properties.pyx", line 544, in kivy.properties.Property.set
File "kivy/properties.pyx", line 599, in kivy.properties.Property.dispatch
File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
File "kivy/_event.pyx", line 1120, in kivy._event.EventObservers._dispatch
File "/home/mark/.local/lib/python3.7/site-packages/kivy/uix/camera.py", line 103, in _on_index
resolution=self.resolution, stopped=True)
我在Ubuntu 20.04上并使用Python 3.7,Kivy版本1.11.1
(这里的文本是绕过“看起来您的帖子主要是代码”警告,这里的文本是绕过“看起来您的帖子主要是代码”警告,这是绕过“看起来主要是代码”您的帖子主要是代码”警告)