Kivy:上一个屏幕在当前(下)屏幕后面仍然可见



我正在用kivy制作一个简单的GUI。制作了两个屏幕,但遇到了一个问题。问题:当前屏幕后面仍然可以看到上一页

检查截图:

第一个屏幕。输入图片描述

第一个屏幕仍然可见的第二个屏幕。输入图片描述

main.py代码

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
Builder.load_file("design.kv")
class LoginScreen(Screen):
def sign_up(self):
self.manager.current = "signup_screen"
class SignUpScreen(LoginScreen):
pass
class RootWidget(ScreenManager):
pass
class MainApp(App):
def build(self):
return RootWidget()
if __name__ == '__main__':
MainApp().run()

, design.kv

<LoginScreen>:
GridLayout:
cols:1
GridLayout:
cols:1
Label:
text: "User Login"
TextInput:
hint_text:"Username"
TextInput:
hint_text:"Password"
Button:
text:"Login"
GridLayout:
cols:2
Button:
text:"Forgot Password?"
Button:
text:"Sign up"
on_press:root.sign_up()
<SignUpScreen>:

GridLayout:
cols:1
Label:
text:"Welcome to Another Dimension, Bitch!"
TextInput:
hint_text:"New Username"
TextInput:
hint_text:"New Password"
GridLayout:
cols:2
Button:
text:"Submit"
Button:
text:"Cancel"
<RootWidget>:
LoginScreen:
name:"login_screen"
SignUpScreen:
name:"signup_screen"

这里的问题是您从LoginScreen继承了SignUpScreen,这就是为什么登录屏幕的小部件仍然在注册屏幕上。这里的简单解决方案是从Screen类继承SignUpScreen:

class SignUpScreen(Screen):
pass

最新更新