【发布时间】:2021-10-07 09:39:47
【问题描述】:
我正在尝试在 kivy 中切换屏幕,但我已经坚持了一段时间,所以我不知道发生了什么。 正在打印文本,但屏幕仍未更改。 如果有人可以帮助我,这是python代码:
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivymd.theming import ThemableBehavior
from kivymd.uix.list import MDList
from kivy.uix.screenmanager import ScreenManager, Screen, SlideTransition
from kivymd.uix.button import MDFloatingBottomButton
Window.size = (300, 500)
class MainScreen(Screen):
def switch_button(self):
print("switching")
ScreenManager.current = "FileScreen"
class FileScreen(Screen):
pass
class app(MDApp):
data = {
'Create': 'file-document',
'Open': 'folder-open'
}
def btn(self, instance):
print('callback')
icon = instance.icon
# if you want check button, use
if isinstance(instance, MDFloatingBottomButton):
if icon == 'file-document':
print('Create')
MainScreen.switch_button(self)
elif icon == 'folder-open':
print('Open')
class ContentNavigationDrawer(BoxLayout):
pass
class DrawerList(ThemableBehavior, MDList):
pass
sm = ScreenManager()
sm.add_widget(MainScreen(name='MainScreen'))
sm.add_widget(FileScreen(name='FileScreen'))
def build(self):
self.theme_cls.primary_palette = "Red"
#self.theme_cls.accent_palette = "Teal"
screen = Builder.load_file("main.kv")
return screen
app().run()
这里是.KV 代码:
ScreenManager:
MainScreen:
FileScreen:
<MainScreen>:
name: "MainScreen"
MDFloatingActionButtonSpeedDial:
bg_hint_color: app.theme_cls.primary_light
data: app.data
root_button_anim: True
callback: app.btn
<FileScreen>:
name: "FileScreen"
MDBoxLayout:
MDLabel:
text: "test"
我希望社区可以尽快帮助我,因为如果我已经在此问题上停留了一段时间。
【问题讨论】:
标签: python python-3.x kivy kivy-language kivymd