Как передавать текст между окнами в kivy?

Уважаемые знатоки, как можно сделать передачу текста из TextInput в окне №1 в Label окна №2 через .py? Выдает пустой экран. Я знаю что уже было обсуждение этой проблемы вот здесь, но мне не помогло в силу неопытности, подскажите пожалуйста, как это можно реализовать в моем коде и обязательно ли создавать .kv файл? Заранее благодарю за потраченные на меня время и силы!!

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.gridlayout import GridLayout
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen

class ScreenMain(Screen):
    def __init__ (self, **kwargs):
        super().__init__(**kwargs)

        ## Создание кнопок "Далее" и "Назад"
        self.main_widget = Widget()
        self.main_widget.add_widget(Button(text='Далее', on_press=self._on_press_button_second_screen, pos = [200, 0], size=(100, 50)))

        ## Создаем первый экземпляр Layout
        self.main_layout = GridLayout(cols=1, row_force_default=True, row_default_height=45,padding = [30, 0], spacing = 3)

        gl_1 = GridLayout(cols=4)
        self.Product = (TextInput(size_hint=[.7, .05], font_size=24, halign='left'))
        gl_1.add_widget(self.Product)
        self.Quantity = (TextInput(font_size=24, halign = 'center', size_hint=[None, .1], size=[50, 45]))
        gl_1.add_widget(self.Quantity)
        gl_1.add_widget(Button(text='V', on_press = self.btn_press, size_hint=[None, .1], size=[50, 45]))
        gl_1.add_widget(Button(text='X', size_hint=[None, .1], size=[50, 45]))


        self.main_layout.add_widget(self.main_widget)
        self.main_layout.add_widget(gl_1)
        self.add_widget(self.main_layout)


    def btn_press(self, instance):

        ## Создаем кнопку для добавления дополнительного Layout
        gl_1 = GridLayout(cols=4)
        self.Product = (TextInput(size_hint=[.7, .05], font_size=24, halign='left'))

        gl_1.add_widget(self.Product)
        self.Quantity = (TextInput(font_size=24, halign='center', size_hint=[None, 0.1], size=[50, 45]))
        gl_1.add_widget(self.Quantity)
        gl_1.add_widget(Button(text='V', on_press = self.btn_press, size_hint=[None, 0.1], size=[50, 45]))
        gl_1.add_widget(Button(text='X', size_hint=[None, .1], size=[50, 45]))

        self.main_layout.add_widget(gl_1)


    def _on_press_button_second_screen(self, *args):

        ## Создаем функцию кнопки Далее
        self.manager.transition.direction = 'left'
        self.manager.current = 'second_screen'


class ScreenSecond(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        ## Создаем кнопку Назад
        self.main_widget = Widget()
        self.main_widget.add_widget(Button(text='Назад', on_press=self._on_press_button_main_screen, pos=[0, 0], size=(100, 50)))


        ## Создаем экземпляр Label для отображение введенных данных
        self.main_layout = GridLayout(cols=1, row_force_default=True, row_default_height=45, padding=[30, 0], spacing=3)
        gl_2 = GridLayout(cols=3)

        self.lbl = Label(text = str(ScreenMain().Product.text), font_size = 15)
        gl_2.add_widget(self.lbl)

        self.lbl2 = Label(text = str(ScreenMain().Quantity.text), font_size=15)
        gl_2.add_widget(self.lbl2)


        self.main_layout.add_widget(self.main_widget)
        self.main_layout.add_widget(gl_2)

        self.add_widget(self.main_layout)


    def _on_press_button_main_screen(self, *args):

        ## Создаем функцию кнопки Назад
        self.manager.transition.direction = 'right'
        self.manager.current = 'main_screen'


class MyApp(App):
    def build(self):

        sm = ScreenManager()
        sm.add_widget(ScreenMain(name='main_screen'))
        sm.add_widget(ScreenSecond(name='second_screen'))

        return sm


if __name__ == '__main__':
    MyApp().run()

Ответы (1 шт):

Автор решения: ku_ku_riz

Что бы долго не думать сохраняйте текст в глобальную переменную, а после уже используйте где вам надо. Когда текст уже не нужен просто очистите переменную что бы не занимала память

→ Ссылка