Как обновить виджет в python kivy?
Есть такая проблема, я хочу, что бы пользователь вводил в TextInput номер, а на следующем экране подгружалась картинка(у них у всех название от 1-1200), но почему то когда я указываю название картинке в kv файле все работает исправно, а когда делаю тоже самое через основной файл изображение не меняется или вовсе белый экран на месте виджета Image. py файл
#import
from kivy.app import App
from kivymd.app import MDApp
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.recycleview import RecycleView
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivymd.theming import ThemeManager
from PIL import Image
import os
import time
class MainScreen(Screen):
def ww(self, predmet):
if predmet == 'Алгебра':
set_screen('second')
class NumberScreen(Screen):
def numb(self, numb):
AnswerScreen().show_answer(numb)
set_screen('third')
class AnswerScreen(Screen, BoxLayout):
def show_answer(self, numb):
f = os.getcwd()+'\\answers\\algebra-9\\'+str(numb)+'.jpg'
self.answer1.source = numb+'.jpg'
sm = ScreenManager()
def set_screen(name_screen):
sm.current = name_screen
class frontApp(MDApp):
def build(self):
self.theme_cls.theme_style = 'Dark'
sm.add_widget(MainScreen(name='main'))
sm.add_widget(NumberScreen(name='second'))
sm.add_widget(AnswerScreen(name='third'))
return sm
if __name__ == '__main__':
frontApp().run()
kv файл
#:import Button kivy.uix.button.Button
<MainScreen>:
label: label
btn: btn
BoxLayout:
spacing: 10
padding: 15
orientation: 'vertical'
MDLabel:
id: label
text: 'Выберите предмет:'
size_hint: 1, 0.3
MDRaisedButton:
id: btn
size_hint: 1, 0.3
text: 'Алгебра'
on_release:
root.ww('Алгебра')
MDRaisedButton:
id: btn
size_hint: 1, 0.3
text: 'Русский язык'
on_release:
root.ww('Русский язык')
MDRaisedButton:
id: btn
size_hint: 1, 0.3
text: 'Химия'
on_release:
root.ww('Химия')
<NumberScreen>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
BoxLayout:
orientation: 'vertical'
size_hint: 1, 0.2
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
MDRaisedButton:
text:'<'
on_release:
app.root.current = 'main'
MDTextField:
id: textinput
multiline: False
size_hint: 1, 1
hint_text: 'введите номер'
on_focus: if not self.focus: root.numb(self.text)
<AnswerScreen>:
answer1:answer1
answer2:answer2
box:box
BoxLayout:
id: box
orientation: 'vertical'
AnchorLayout:
size_hint: 1, 0.05
anchor_x: 'center'
anchor_y: 'top'
BoxLayout:
orientation: 'vertical'
size_hint: 1, 0.2
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
MDRaisedButton:
text:'<'
on_release:
app.root.current = 'second'
BoxLayout:
orientation: 'vertical'
MDLabel:
size_hint: 1, 0.2
text:'решение №1'
Image:
id: answer1
size_hint: 1, 1
source: '12.jpg'
allow_stretch: True
MDLabel:
text:'решение №2'
size_hint: 1, 0.2
Image:
id: answer2
source: '12.png'
allow_stretch: True