python – Kivy – 屏幕管理器 – 访问其他类中的属性
发布时间:2020-11-17 15:57:29 所属栏目:Python 来源:互联网
导读:使用Kivy Screen Manager,我创建了两个Screens.在屏幕1中,我想在屏幕2中更改标签.我在我的代码中突出显示了有问题的区域: 我的test.ky: #: import ScreenManager kivy.uix.screenmanager.ScreenManager#: import Screen kivy.uix.screenmanager.ScreenManag
使用Kivy Screen Manager,我创建了两个Screens.在屏幕1中,我想在屏幕2中更改标签.我在我的代码中突出显示了有问题的区域: 我的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" 和我的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() 任何帮助是极大的赞赏! 解决方法这个怎么样:当您按下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 – 将日期列和时间列合并到datetime列
- python – ElementTree find()/ findall()找不到带命名空间
- python – 加速解决三角线性系统与numpy?
- python – 更改matplotlib线样式中图
- python – NameError:未定义名称“UTC”
- 创建虚拟环境(Python)中“virtualenv”和“-m venv”之间的
- 在包含f2py(最小工作示例)的模块中包含已编译的模块?
- django-forms – 如何使用modelformset_factory创建一个空的
- python – 方法中的单个字符串或字符串列表
- python – Kivy – 屏幕管理器 – 访问其他类中的属性