Je n'arrive pas à comprendre comment modifier le texte d'une étiquette dans un widget kivy. Pour simplifier, j'ai une étiquette mise à 0 et je voudrais changer le texte pour lire 30 dans cet exemple. Cependant, j'obtiens l'erreur suivante.Modification des propriétés d'un widget kivy dans la classe
AttributeError: objet « super » n'a pas d'attribut « getattr »
Je comprends que je ne suis probablement pas bien cibler ce widget et j'espère que quelqu'un peut-il expliquer comment référencer précisément le texte de cette étiquette (self.ids.mainel1temp.stuff_r.text = « 30 ») mettre à jour (avec plus de détails que de fixer le code)
#!/usr/bin/kivy
import kivy
from random import random
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.switch import Switch
from kivy.uix.label import Label
from kivy.config import Config
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '480')
Builder.load_string("""
<Menuscreen>:
#Handling the gesture event.
ScreenManager:
id: manager
Screen:
id: main_screen
name:'main_screen'
stuff_r: mainel1temp
FloatLayout:
Label:
id: mainel1temp
size: self.texture_size
text:'0'
size_hint: None, None
text_size: 75,75
pos: 295,308
font_size:'20sp'
halign: 'center'
""")
class Thermostuff(Screen):
stuff_r = ObjectProperty(None)
def starttherm(self):
Clock.schedule_interval((self.read_temp), 1)
def read_temp(self, dt):
self.ids.mainel1temp.stuff_r.text = '30'
Thermrun = Thermostuff()
Thermrun.starttherm()
class MenuScreen(Screen):
pass
sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()