我的test.ky:
#: import ScreenManager kivy.uix.screenmanager.ScreenManager#: import Screen kivy.uix.screenmanager.ScreenManager#: import SettingsScreen screenScreenManager: 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"
和我的screen.py
from kivy.app import Appfrom kivy.uix.Boxlayout import BoxLayoutfrom kivy.uix.screenmanager import ScreenManager,Screenclass MenuScreen(Screen): def change_text(self): pass # HERE: something like # root.SettingsScreen.label_fIEld.text = 'new text'class SettingsScreen(Screen): passclass TestApp(App): passTestApp().run()
任何帮助是极大的赞赏!
谢谢,尼科
当您按下MenuScreen上的按钮时,它会在其自身上设置一个属性,其中包含您要放入SettingsScreen标签中的文本.然后在菜单屏幕中为kv文件分配一个ID值,该值用于引用此属性.例:
main.py
class MenuScreen(Screen): text = StringProperty('') def change_text(self): self.text = "The text you want to set" self.manager.current = "SettingsScreen"class SettingsScreen(Screen): label_text = StringProperty('')
kv文件
ScreenManager: ID: screen_manager MenuScreen: ID: menu_screen name: 'MenuScreen' manager: screen_manager SettingsScreen: name: 'SettingsScreen' manager: screen_manager label_text: menu_screen.text<MenuScreen>: BoxLayout: button: text: 'Goto nn' on_press: root.change_text()<SettingsScreen>: BoxLayout: Label: text: root.label_text
正如您所看到的,我在屏幕管理器中设置了屏幕的名称和ID在kv文件中,因为这是我通常要做的工作.
总结以上是内存溢出为你收集整理的python – Kivy – 屏幕管理器 – 访问其他类中的属性全部内容,希望文章能够帮你解决python – Kivy – 屏幕管理器 – 访问其他类中的属性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)