我想創建一個接受用戶名和密碼的登錄頁面。驗證兩個彈出消息後,應顯示消息:「登錄成功」,否則顯示彈出消息「登錄失敗」。 我試過但我不知道我錯在哪裏。任何幫助將非常感激。我的代碼如下(保存爲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