• Как получить доступ к нескольким классам Kivy из одного класса внутри стороны Python?

    @Sladkoeggka Автор вопроса
    Причина была в том, что класс CanListener (Далее CL) не имел отношения к ScreenManager (Далее SM).
    В дерево виджетов SM его ,соответственно, не включал. Область действия id ограничена правилом, в котором оно обьявлено поэтому из класса CL нельзя получить доступ к id_egt_right. идентификаторы (id) доступны только для родительского обькта, в данном случае это SM. таким образом я указал свойство класса class CanListener(Screen):, добавил его в дерево обьектов:
    class DashApp(App):
        def build(self):
            sm=ScreenManager()
            sm.add_widget(CanListener(name='listner'))
            sm.add_widget(First(name='first'))
            sm.add_widget(Monitor(name='monitor'))
            sm.add_widget(Third(name='third'))
            return sm

    В CL указал id для класса Monitor. Присовил нужным обьектам свойство ObjectProperty. Теперь ссылки для переменных и label работают между классами
    .kv
    <b><CanListener>:
        Monitor:
            id: monitor</b>
    
    <First>:
        
      BoxLayout:
            spacing:50 #spacing=pix между виджетами 
            padding:10 #padding=[отступ горизонтально pix, отступ вертикально pix] 
            orientation:'vertical'
            Image:
                source: 'Logo.png'
                size_hint:(1, .9)
                    
    <Monitor>:
    
        <b>egt_right: id_egt_right</b>
    
            GridLayout:
                BoxLayout:
                    orientation:'vertical'
                    Label:
                        text:'[color=#999999]EGT RIGHT /[/color][sup]t_egt[/sup]C'
                    Label:
                        <b>id: id_egt_right</b>
                        text: '[b][i][color=#cccccc]0[/color][/i][/b]'
    
    <Third>:
        BoxLayout:


    .py
    <b>class CanListener(Screen):</b>
        def __init__(self,**kwargs):
            super(CanListener, self).__init__(**kwargs)
            <b>monitor = ObjectProperty(None)</b>
            
    <b>#        self.ids["monitor"].ids['id_egt_right'].text = str(100)
            self.monitor.egt_right.text = str(100)</b>
      
    class First(Screen):
        def __init__(self,**kwargs):
            super(First, self).__init__(**kwargs)
    
    class Monitor(Screen):
        <b>egt_right = ObjectProperty(None)</b>
    
        def __init__(self,**kwargs):
            super(Monitor,self).__init__(**kwargs)
    
    
    class Third(Screen):
        def __init__(self,**kwargs):
            super().__init__(**kwargs)       
          
    class DashApp(App):
        def build(self):
            sm=ScreenManager()
            <b>sm.add_widget(CanListener(name='listner'))</b>
            sm.add_widget(First(name='first'))
            sm.add_widget(Monitor(name='monitor'))
            sm.add_widget(Third(name='third'))
            return sm
    
    
    if __name__=="__main__": #если запускаем напрямую из консоли
        DashApp().run()


    Однако теперь необходимо разобраться с методом super, для корректной работы виджетов
    Ответ написан
    Комментировать