Причина была в том, что класс 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, для корректной работы виджетов