Kivy - Screen-Manager - Zugriff auf Attribut in einer anderen Klasse

Mithilfe der Kivy-Screen-Manager, erstelle ich zwei Bildschirme. Während es in Bildschirm 1, ich möchte das ändern einer Beschriftung im Bildschirm zwei. Ich markieren Sie den problematischen Bereich in meinem code:

meine 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"

und meine 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()

Jede Hilfe wird sehr geschätzt!
Danke, Nico

InformationsquelleAutor BuroBernd | 2014-12-08
Schreibe einen Kommentar