Kivy не возвращает значения в python - PullRequest
0 голосов
/ 03 мая 2020
#:kivy 1.11.1 

<MyManager>:
    ConnPage:
    MyGame:

<ConnPage>:
    name: "main"

    GridLayout:
        cols: 1

        GridLayout:
            cols: 2
            rows: 4

            Label:
                text: "username: "

            TextInput:
                id: username
                multiline: False

            Label:
                text: "password: "

            TextInput:
                id: password
                password: True
                multiline: False

            Label:
                text: "email: "

            TextInput:
                id: email
                multiline: False

        Button:
            text: "Submit"
            on_release:
                app.root.current = "mygame" if password.text == "password" else "main" 
                root.manager.transition.direction = "left"

<MyGame>:
    name: "mygame"

    Button:
        text: "Go back"
        on_release:
            app.root.current = "main"
            root.manager.transition.direction = "right"
--------------------------------------------------------------------------------------------
import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput 
from kivy.uix.widget import Widget 
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.uix.scrollview import ScrollView
from kivy.lang import Builder
import os
import sys

kivy.require("1.11.1")

class ConnPage(Screen):
    def login(self):
        user = self.root.ids.username.text
        passw = self.root.ids.password.text
        mail = self.root.ids.email.text
        print(f"{user}")
        if len(user) > 0 and len(passw) > 0 and len(mail) > 0:
            from kivy.network.urlrequest import UrlRequest
            import urllib.parse
            parameters = {"username":user, "password":passw, "email":mail}
            parameters = urllib.parse.urlencode(parameters)
            header = {"Content-Type":"application/x-www-form-urlencoded", "Accept":"text/plain"}
            url = "http://localhost/2D_kivy_game/login.php"
            UrlRequest(url=url, req_headers=header, req_body=parameters, on_success=self.success, on_error=self.error)
        print("Please fill in all values!!!!")

    def success(self, req, data):
        print(data)

    def error(self, req, errormessage):
        print(errormessage)

class MyGame(Screen):
    pass

class MyManager(ScreenManager):
    pass

kv = Builder.load_file("stylesheet.kv")

class MyApp(App):
    def build(self):
        return MyManager()

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

У меня проблема в том, что программа не возвращает запрошенное значение. Получение значений выполняется в моем файле .kv. Программа запускает классы, но не возвращает значений. Я предполагаю, что вы не можете запросить MyManager () и подозревать, что он возвращает значения подкласса ...? Я использую KIVY 1.11.1, может быть, это не работает в этой версии? Я понятия не имею, пытался исправить это в течение 4 дней, теперь он начинает работать мне на нервы, так как я не получаю никакой обратной связи в терминале.

...