所以我一直在开发一个使用多个屏幕的应用程序,其中一个是带有主题选择器的设置屏幕。代码如下所示:
Python:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
class MainScreen(Screen):
pass
class SettingsScreen(Screen):
def changeTheme(self, state):
if state:
# set the bgs of screens to black
else:
# set the bgs of screens to white
class Test(App):
def build(self):
sm = ScreenManager(transition: FadeTransition())
sm.add_widget(MainScreen())
sm.add_widget(SettingsScreen())
return sm
Test().run()
基维:
<MainScreen>:
id: Main
name: 'Main'
BoxLayout:
orientation: vertical
Label:
text: 'Settings below!'
Button:
id:
text: 'Settings'
on_release: app.root.current = 'Settings'
<SettingsScreen>:
id: Settings
name: 'Settings'
BoxLayout:
Label:
text: 'Dark mode?'
CheckBox:
id: darkTheme
on_active: root.changeTheme(self.state)
我现在面临的问题是,我不知道如何访问<MainScreen>
和<SettingsScreen>
类来更改背景颜色。任何帮助都将不胜感激
如果必须使用
id
访问Screens
,则必须将Screens
指定为kv
中ScreenManager
的子项,如下所示:如果
kv
文件名为test.kv
,则可以完全消除build()
方法。然后,您可以使用root
(即ScreenManager
)的App
的ids
访问Screens
相关问题 更多 >
编程相关推荐