Ich habe Schwierigkeiten, herauszufinden, wie man den Text eines Etiketts in einem kivy-Widget ändert. Der Einfachheit halber habe ich eine Beschriftung auf 0 gesetzt und möchte in diesem Beispiel den Text auf 30 ändern. Ich erhalte jedoch den folgenden Fehler.Ändern der Kivy-Widget-Eigenschaften innerhalb der Klasse
Attribute: ‚super‘ Objekt hat kein Attribut ‚getattr‘
Ich verstehe, dass ich wahrscheinlich nicht richtig, dass die Widget-Targeting und ich bin der Hoffnung, jemand erklären, bitte kann, wie gesagt, den Text dieses verweisen Etikett (self.ids.mainel1temp.stuff_r.text = ‚30‘) zu aktualisieren (mit mehr Details als den Code Fixierung)
#!/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()