带有分离的 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相机实时应用滤镜

如何使用 kivy 在 python 中动态访问单独的相机类(无需预初始化相机)

我如何使用 Kivy (Python) 相机

有啥方法可以将 Kivy 相机照片保存为 base64 而不将其导出为 png?

Kivy Plyer 相机

如何使用 kivy 为移动应用程序制作相机小部件