簡體   English   中英

Python Kivy TextInput無法正常工作?

[英]Python Kivy TextInput not working?

我使用kivy創建了一個簡單的登錄和注冊屏幕,但是TextInput不允許我在其中輸入內容嗎? 在登錄屏幕和注冊屏幕上均發生此錯誤。 我試圖在這里查找過去的問題,但找不到任何東西。

Python文件:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

class Login_Screen(Screen):
    def login(self):
        if self.ids.username.text == "root" and\
            self.ids.passwrd.text == "123":
            print("Direct Entry")
            self.manager.current = "Login_Successful"
        else:
            print("Wrong Password")
            self.manager.current = "Login_Failed"
    def registration(self):
        self.manager.current = "Registration_Screen"

class LoginConfirmationScreen(Screen):
    pass

class Registration_Screen(Screen):
    def MainScreen(self):
        self.manager.current = "Login_Screen"

class Login_Failed(Screen):
    def MainScreen(self):
        self.manager.current = "Login_Screen"

class RootWidget(ScreenManager):
    pass

Builder.load_file("MainApp.kv")

class MainApp(App):
    def build(self):
        return RootWidget()

if __name__ == "__main__":
    MainApp().run()

和MainApp.kv文件:

<RootWidget>:
    id: Main
    Login_Screen:
        id: login
        name: "Login_Screen"
    Login_Failed:
        id: Failed
        name: "Login_Failed"
    Registration_Screen:
        id: register
        name: 'Registration_Screen'


<Login_Screen>:
    GridLayout:
        rows:3
        cols:2
        Label:
            text: "Username:"
            font_size: 20
        TextInput:
            id: username
            multiline: False
            hint_text: 'Enter your Username'
        Label:
            text: "Password"
            font_size: 20
        TextInput:
            id: passwrd
            multiline: False
            hint_text: 'Enter your Password'
            password: True
        Button:
            text: "Register"
            on_press: root.registration()
        Button:
            text: "Sign In"
            on_press: root.login()

<Registration_Screen>:
    GridLayout:
        rows:3
        cols:2
        Label:
            text: 'First Name:'
            font_size: 20
        TextInput:
            id: FirstName
            multiline: False
            hint_text: 'Enter your First Name'
        Label:
            text: 'Surname'
            font_size: 20
        TextInput:
            id: Surname
            multiline: False
            hint_text: 'Enter your Surname'
        Button:
            text: "Create Account"
            on_press: root.MainScreen()


<Login_Failed>:
    BoxLayout:
        orientation: "vertical"
        Label:
            text: "Login Failed"
        Button:
            text: "Try again"
            on_press: root.MainScreen()

感謝幫助 :)

刪除此:

Builder.load_file("MainApp.kv")

從py文件中獲取,因為您是App實例,即:

class MainApp(App):

已經自動加載了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM