2016-11-13 6 views
0

Я хочу использовать это для более позднего проекта, я просто хочу распечатать вход пользователя от TextInput, нажав кнопку на MainScreen, но когда я запустил и нажимаю на кнопку с текстом «Печать Текст «ничего не происходит без ошибок и без вывода.Получение ввода от kivy textinput

Файл .kv:

#: 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} 

код питона:

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

В get_text вы'TextInput. text 'вместо'textinput.text'. – Tshirtman

ответ

0

Когда код в kv привязываются непосредственно как если бы вы вызов функция, например,

on_release: do_this() 

, но вы сделали это без круглых скобок, как если бы это был случайный питон связывания:

self.bind(on_release=do_this) 

Добавьте скобку, и он должен напечатать:

on_release: root.get_text()