【发布时间】:2021-07-29 08:05:51
【问题描述】:
我正在开发一个有几个屏幕的简单 Kivy/Python 应用程序。我已将每个屏幕拆分为它自己的 python 文件,例如:
'main.py'、'homeScreen.py'、'settingsScreen.py'
在 'main.py' 我有这个:
if __name__ == '__main__':
app = myApp()
app.run()
使用屏幕管理器管理/运行应用程序...例如:
class myApp(App):
def build(self):
self.screen_manager = ScreenManager()
# Home Screen
self.home_screen = homeScreen.HomeScreen()
screen = Screen(name="Home")
screen.add_widget(self.home_screen)
self.screen_manager.add_widget(screen)
# Settings Screen
self.settings_screen = settingsScreen.settingsScreen()
screen = Screen(name="Settings")
screen.add_widget(self.settings_screen)
self.screen_manager.add_widget(screen)
return self.screen_manager
问题是我似乎无法从另一个 .py 文件更改屏幕
homeScreen.py:
class HomeScreen(FloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# button UI code
def settingsButton(self, instance):
app.screen_manager.current = "Settings"
因为“app”是在“main.py”中定义的,我似乎无法访问它来更改设置屏幕。我已经尝试了以下方法,但我似乎仍然无法从 main 以外的文件更改“app.screen_manager.current”:
import main
from main import *
main.app.screen_manager.current = "Settings"
app.screen_manager.current = "Settings"
任何建议将不胜感激。谢谢。
【问题讨论】: