2016-11-13 13 views
0

Ich möchte dies für ein späteres Projekt verwenden, ich möchte nur Benutzereingabe von TextInput durch Klicken auf die Schaltfläche auf der MainScreen, aber wenn ich laufe und klicken Sie auf die Schaltfläche mit dem Text "Drucken Text "nichts passiert, keine Fehler und keine Ausgabe.Eingabe von Kivy Textinput

Die .kv Datei:

#: import FadeTransition kivy.uix.screenmanager.FadeTransition 

ScreenManagement: 
    transition: FadeTransition() 
    MainScreen: 
    SecondScreen: 

<MainScreen>: 
    name: "main" 
    Button: 
     on_release: root.get_text 
     text: "Print Text" 
     font_size: 50 
     size_hint:0.3,0.1 

    TextInput: 
     text:"Hello World" 
     size_hint: 0.35,0.25 
     pos_hint:{"right":1, "top":1} 
     color:1,0,0,1 
     id: user_text 

    Button: 
      color: 0,1,0,1 
      font_size: 25 
      size_hint: 0.3,0.25 
      text: "Continue" 
      on_release: app.root.current = "other" 
      pos_hint:{"right":1, "top":0} 


<SecondScreen>: 
    name: "other" 
    FloatLayout: 
     Button: 
      color: 0,1,0,1 
      font_size: 25 
      size_hint: 0.3,0.25 
      text: "Back Home" 
      on_release: app.root.current = "main" 
      pos_hint:{"right":1, "top":1} 

Der Python-Code:

from kivy.app import App 
#kivy.require("1.9.1") 
from kivy.lang import Builder 
from kivy.uix.screenmanager import ScreenManager, Screen , FadeTransition 
from kivy.uix.widget import Widget 
from kivy.graphics import Line 
from kivy.uix.textinput import TextInput 

class MainScreen(Screen): 
    def get_text(self,*args): 
     textinput= self.ids.user_text 
     user= TextInput.text 
     print(user) 



class SecondScreen(Screen): 
    pass 

class ScreenManagement(ScreenManager): 
    pass 


gui = Builder.load_file("main.kv") 


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


MainApp().run() 
+0

In GET_TEXT Sie'TextInput tun. Text 'anstelle von' Texteingabetext '. – Tshirtman

Antwort

0

Wenn Sie Code in kv binden Sie direkt, als ob Sie nennen würde die Funktion z

on_release: do_this() 

, aber sie tat es ohne Klammern, als ob es eine lässige Python-Bindung war:

self.bind(on_release=do_this) 

die Klammer hinzufügen und es sollte drucken:

on_release: root.get_text()