python - accessing data in the kivy language from ScreenManager -
how can access kivy data myscreenmanager ? how can access hellow or timer data ? cant use on_release: root.starttimer() in hellow.
class hellow(screen): pass class timer(screen): pass class myscreenmanager(screenmanager): def starttimer(self): #change text hellow button root_widget = builder.load_string(''' #:import fadetransition kivy.uix.screenmanager.fadetransition myscreenmanager: transition: fadetransition() hellow: timer: <hellow>: anchorlayout: button: id: size_hint: none, none size:300,100 text: 'make foto' font_size: 30 on_release: app.root.starttimer() <timer>: name: 'timer' ''') class screenmanagerapp(app): def build(self): print(self.ids) return root_widget if __name__ == '__main__': screenmanagerapp().run()
some text stackoverflow (it says need type more text),
screen manager used accept screen widgets if try add else button or label throw exception. kivy.uix.screenmanager.screenmanagerexception: screenmanager accepts screen widget.
1 root object allowed .kv file in case, can access hello or timer each other.
<hellow>: name: 'hello' ... button: id: ... on_release: root.parent.current = 'timer' <timer>: name: 'timer' button: text: "take me hellow" on_release: root.parent.current = 'hello'
but there way too.
<main>: boxlayout: button: text: "hello" on_release: sm.current = 'timer' on_release: print(lbl.text) button: text: "timer" on_release: sm.current = 'hello' screenmanager: id: sm screen: name: hello label: id: lbl text: "i hello" screen: name: timer label: text: "i timer"
edit 1:
as asked in comment
class myscreenmanager(screenmanager): def __init__(self,**kwargs): super(myscreenmanager,self).__init__(**kwargs) def starttimer(self,event): #print event.text event.text = "changed text" <hellow>: ... button: ... on_release: root.parent.starttimer(self)
Comments
Post a Comment