带有分离的 kivy 文件的 Kivy 相机
Posted
技术标签:
【中文标题】带有分离的 kivy 文件的 Kivy 相机【英文标题】:Kivy Camera with separated kivy file 【发布时间】:2022-01-21 17:34:17 【问题描述】:我正在构建一个应用程序,它将使用 kivy 相机拍摄文本照片并通过 OCR 运行它。当我通过 python 和 kivy 文件构建时,我无法弄清楚如何将它们分成不同的文件以继续应用程序进程。
我从 CodersHubb 获得了这段代码,它可以运行,但我想用 Kivy 语言将它分解出来,以便我可以在应用程序中添加屏幕。
from kivy.app import App
from kivy.uix.camera import Camera
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.core.window import Window
Window.size = (500, 550)
class cameraApp(App):
def build(self):
global cam
cam = Camera()
btn = Button(text="Capture Total")
btn.size_hint = (.1, .1)
btn.font_size = 35
btn.background_color = 'blue'
btn.bind(on_press = self.capture_image)
layout = GridLayout(rows=2, cols=1)
layout.add_widget(cam)
layout.add_widget(btn)
return layout
def capture_image(self, *args):
global cam
cam.export_to_png('image.png')
print('Image captured and saved in current working directory')
if __name__ == '__main__':
cameraApp().run()
【问题讨论】:
【参考方案1】:您只想将所有内容写入 *.kv 文件? 尝试这个: *.kv 文件:
GridLayout:
rows:2
cols:1
Camera:
id:camera
Button:
text:"Capture Total"
size_hint: (.1,.1)
font_size:35
background_color:"blue"
on_press:app.capture_image
main.py 文件:
from kivy.app import App
from kivy.lang.builder import Builder
from kivy.core.window import Window
Window.size = (500, 550)
class cameraApp(App):
def build(self):
self.root = Builder.load_file("MY_KV.kv")
return self.root
def capture_image(self, *args):
cam = self.root.ids.camera
cam.export_to_png('image.png')
print('Image captured and saved in current working directory')
if __name__ == '__main__':
cameraApp().run()
别忘了把build
函数中的文件名改成你的kv文件
【讨论】:
是的,我想将相机分离成一个 kivy 文件,但我也想将应用程序中的其他屏幕与相机一起使用。 请阅读 screenmanager 文档:kivy.org/doc/stable/api-kivy.uix.screenmanager.html以上是关于带有分离的 kivy 文件的 Kivy 相机的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 kivy 在 python 中动态访问单独的相机类(无需预初始化相机)