【发布时间】:2022-01-11 20:13:20
【问题描述】:
我正在使用 python、kivymd 和 kivy 的屏幕管理器切换登录系统,但是,当我尝试将屏幕从登录屏幕切换到另一个屏幕时,没有任何反应,没有错误,也没有视觉变化。这是一个可重现的例子:
.py 文件
import kivy
from kivy.uix.image import Image
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivymd.app import MDApp
class Screen1(Screen):
def SwitchScreen(self):
scrMng.current = "screen2"
class Screen2(Screen):
def SwitchScreen(self):
scrMng.current = "screen1"
scrMng = ScreenManager()
scrMng.add_widget(Screen1(name = "screen1"))
scrMng.add_widget(Screen2(name = "screen2"))
class TestApp(MDApp):
def build(self):
return Builder.load_file("main.kv")
TestApp().run()
.kv 文件
ScreenManager:
Screen1:
Screen2:
<Screen1>
name: "screen1"
MDCard:
size_hint: None, None
size: 300, 350
pos_hint: {"center_x": 0.5, "center_y": 0.5}
elevation: 10
padding: 25
spacing: 25
orientation: 'vertical'
MDLabel:
text: "Screen2"
font_size: 40
halign: "center"
font_bold: True
theme_text_color: "Custom"
text_color: (0.20, 0.33, 1.00, 1)
MDRoundFlatButton:
text: "SWITCH"
font_size: 12
pos_hint: {"center_x": 0.5}
on_press: self.parent.parent.SwitchScreen()
<Screen2>
name: "screen2"
MDCard:
size_hint: None, None
size: 300, 350
pos_hint: {"center_x": 0.5, "center_y": 0.5}
elevation: 10
padding: 25
spacing: 25
orientation: 'vertical'
MDLabel:
text: "Screen1"
font_size: 40
halign: "center"
font_bold: True
theme_text_color: "Custom"
text_color: (0.20, 0.33, 1.00, 1)
MDRoundFlatButton:
text: "SWITCH"
font_size: 12
pos_hint: {"center_x": 0.5}
on_press: self.parent.parent.SwitchScreen()
Python 版本:3.9.9 Kivy 版本:2.0.0
感谢任何帮助!
【问题讨论】:
-
@JohnAnderson 我刚刚编辑了帖子添加了一个示例。