Python和Kivy:相机和在不同屏幕上显示的文字

时间:2019-02-08 05:51:58

标签: python camera synchronization kivy screen

我想用Python用Kivy构建应用程序,但是遇到了一些错误,但我尝试解决了很多次,但我做不到。

我先打开相机屏幕。在屏幕上,我们看到网络摄像头屏幕,并且底部有2个按钮(播放和捕获)。当我按“播放”时,网络摄像头已打开,如果按“捕获”按钮,则正在拍摄快照。拍摄快照后,我们将转到左侧的屏幕。特别感谢Erik,他在下面构建了此工作代码。

但是当我捕获照片时,我们在左侧屏幕上,我想在左侧屏幕上显示一些文本(来自另一个py文件,例如基本hello1,hello2 ...等等)。

我知道我该如何基本上在仅具有打印功能的控制台中打印一个句子,但是我想从另一个py文件在左屏幕上的应用程序中同步写入许多打印功能的结果。

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
import time

class CheckScreen(Screen):
    pass

class CameraClickScreen(Screen):
    def capture(self):
        camera = self.ids['camera']
        timestr = time.strftime("%Y%m%d_%H%M%S")
        camera.export_to_png("IMG_{}.png".format(timestr))
        print("Captured")


GUI = Builder.load_string("""

GridLayout:
    cols: 1
    ScreenManager:
        id: screen_manager
        CameraClickScreen:
            name: "camera_click_screen"
            id: camera_click_screen
        CheckScreen:
            name: "check_screen"
            id: check_screen



<CameraClickScreen>:
    orientation: 'vertical'
    GridLayout:
        cols: 1
        Camera:
            id: camera
            resolution: (640, 480)
            play: False
        ToggleButton:
            text: 'Play'
            on_press: camera.play = not camera.play
            size_hint_y: None
            height: '48dp'
        Button:
            text: 'Capture'
            size_hint_y: None
            height: '48dp'
            on_press:
                root.capture()
                # root refers to <CameraClickScreen>
                # app refers to TestCamera, app.root refers to the GridLayout: at the top
                app.root.ids['screen_manager'].transition.direction = 'left'
                app.root.ids['screen_manager'].current = 'check_screen'

<CheckScreen>:
    Button:
        text: "Next Screen"
        font_size: 50
""")

class TestCamera(App):

    def build(self):
        return GUI


TestCamera().run()

通常使用此代码,在左侧屏幕上,我们会看到带有按钮的“下一屏”句子。我想查看来自py文件的可变文本。例如,Hello 1,然后清除屏幕,Hello 2,然后清除屏幕,...,Hello 5,然后停止。

如何添加此基本打印功能并与应用程序集成以在左侧屏幕上显示我们?

0 个答案:

没有答案