Я вижу две проблемы с вашим кодом. Во-первых, в вашем файле kv
действие Button
неверно:
Button:
text: "Sensor 01"
on_release:
root.Grafico()
Если Button
предназначен для переключения на другой экран, он должен быть:
Button:
text: "Sensor 01"
on_release:
root.manager.current='grafico'
Во-вторых, в вашем Grafico
классе есть метод build()
, который никогда не вызывается. Если вы измените это с:
class Grafico(Screen):
def build(self):
box = BoxLayout()
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
return box
до:
class Grafico(Screen):
def on_enter(self, *args):
box = BoxLayout()
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
self.add_widget(box)
Я думаю, вы получите желаемый результат. Ключ в том, что метод on_enter()
вызывается при отображении Grafico
Screen
. Метод - это ваш код, но с добавлением self.add_widget(box)
для добавления box
на экран. См. Экранная документация для получения дополнительной информации.