我想创建一个接受用户名和密码的登录页面。验证两个弹出消息后,应显示消息:“登录成功”,否则显示弹出消息“登录失败”。 我试过但我不知道我错在哪里。任何帮助将非常感激。我的代码如下(保存为Login.py):Kivy登录屏幕和弹出窗口出错
所有的from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.popup import Popup
Builder.load_string("""
<[email protected]>:
canvas:
Rectangle:
source: 'b.png'
pos: self.pos
size: self.size
Label:
text: "PLEASE LOGIN OR SIGN UP"
center_x: (root.width/2)
top: (root.top/2)+ 200
font_size: 25
TextInput:
id: txtuname
center_x: (root.width/2)
top: (root.top/2)+ 100
size_hint: None,None
multiline: False
hint_text: "username"
size: 250, 40
max_lines: 1
valign: 'middle'
halign: 'center'
on_text_validate: root.validate();
TextInput:
id: txtpswd
multiline: False
center_x: (root.width/2)
top: (root.top/2)+ 50
size_hint: None,None
hint_text: "password"
size: 250, 40
max_lines: 1
valign: 'middle'
halign: 'center'
on_text_validate: root.validate();
password: True
Button:
id: btnlogin
size: 90,35
pos: 300, 250
font_size: 18
background_color: (1,1,1,0.1)
text: "Login"
on_press: root.validate(txtuname.text,txtpswd.text)
Button:
text: "Sign Up"
size: 90,35
pos: 400, 250
font_size: 18
background_color: (1,1,1,0.1)
<CustomPopup>:
Button:
id: btnpopup
text: "Login successfull"
size_hint: .5, .5
on_press: root.dismiss()
""")
class LoginScreen(Widget):
def validate(self,txtuname,txtpswd):
if txtuname == "username" and txtpswd == "password":
print(txtuname,txtpswd)
b = Button(on_press=self.show_popup)
return b
else:
print("Login failed")
class CustomPopup(Popup):
def show_popup(self, b):
p = CustomPopup()
p.open()
class LoginApp(App):
def build(self):
return LoginScreen()
if __name__ == "__main__":
LoginApp().run()
它的工作原理!非常感谢你 :) – AS15