Python & Kivy: камера и тексты на разных экранах - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу создать приложение с Kivy на Python, но я получил несколько ошибок, которые пытался решить много раз, но не могу.

Сначала я открываю экран камеры.На экране мы видим экран нашей веб-камеры и внизу есть 2 кнопки («Воспроизвести» и «Захват»).Пока я нажимаю Play, веб-камера включена, и если я нажимаю кнопку Capture, я делаю снимок.Сделав снимок, мы идем к экрану, который находится слева.Особая благодарность Эрику , он построил этот рабочий код ниже.

Но когда я делаю снимок, и мы на левом экране, я хочу показать некоторый текст (идущий из ДРУГОГО файла 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 и остановка.

Как добавить основные функции печати и интегрировать с приложением, чтобы показать нам налевый экран?

...