带有单独的 kivy 文件的 Kivy 相机

Kivy Camera with separated kivy file

我正在构建一个应用程序,它将使用 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()

你只是想把所有的东西都写在一个 *.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 文件