Tworzę dwa ekrany za pomocą Kivy Screen Manager. Będąc na ekranie 1, chcę zmienić etykietę na ekranie drugim. I podświetlić obszar problematyczny w moim kodu:Kivy - Menedżer ekranów - atrybut dostępu w innej klasie
mój test.ky:
#: import ScreenManager kivy.uix.screenmanager.ScreenManager
#: import Screen kivy.uix.screenmanager.ScreenManager
#: import SettingsScreen screen
ScreenManager:
MenuScreen:
SettingsScreen:
<MenuScreen>:
name: 'MenuScreen'
BoxLayout:
Button:
text: 'Goto nn'
on_press:
root.manager.current = 'SettingsScreen'
root.change_text()
<SettingsScreen>:
name: 'SettingsScreen'
label_id: label_field
BoxLayout:
Label:
id: label_field
text: "to_be_changed"
i mój screen.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
class MenuScreen(Screen):
def change_text(self):
pass
# HERE: something like
# root.SettingsScreen.label_field.text = 'new text'
class SettingsScreen(Screen):
pass
class TestApp(App):
pass
TestApp().run()
Każda pomoc jest mile widziana! Dzięki, Nico
tak! to działa! Dzięki, jesteś geniuszem !!! :-) – BuroBernd
Musiałem zaimportować właściwości: 'from kivy.properties import StringProperty' – amd