Search code examples
pythonuser-interfacekivytextinput

Not able to print the text taken from kivy.uix.textinput.TextInput in KIVY Python


What I want to do is take input from kivy.uix.textinput.TextInput() and show it on the screen.

I am new to gui Programming and I think it is an easy task.

import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput


class MyWindowApp(App):

    def __init__(self):
        super(MyWindowApp, self).__init__()
        
        self.lbl = Label(text='Read Me!')
        
        self.inp = TextInput(multiline=False,
                             size_hint =(1, 0.05),
                             pos_hint = {"x":0, "y":0.05})

    def build(self):
        self.inp.bind(on_text_validate=self.on_enter)
        #self.bt1.bind(on_press=self.clk)
        layout = FloatLayout()
        layout.orientation = 'vertical'
        
        layout.add_widget(self.lbl)
        layout.add_widget(self.inp)

        return layout
    
    def on_enter(self,value):
        print(value)
    def clk(self, obj):
        print ('input')
        x = input()
        self.lbl.text = x


window = MyWindowApp()
window.run()

when i run the code, I get the regular output output.

when I type say "hello world" in the textbox, this is the output:

<kivy.uix.textinput.TextInput object at 0x03F5AE30>

I do not get what I typed.

please suggest what should I do


Solution

  • Modify the following ...

    def on_enter(self, value):
        print(value.text)