Doubt in the kivy documentation, Textinput

Asked

Viewed 69 times

0

In kivy textinput documentation you have the following code snippet

def on_enter(instance, value): 
   print('User pressed enter in', instance)

textinput = TextInput(text='Hello world', multiline=False)      
textinput.bind(on_text_validate=on_enter)

What part of the code should that be put on? what would instance,value? Instance correspond to self? value corresponds to Textinput.text? What is this bind?

1 answer

0

To show you a graphic example of this I will use Floatlayout, but you can use any layout or widget, and the App, which as you must know is where your app will run.

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput

class RootWid(FloatLayout):
    def __init__(self, **kwargs):
         super().__init__(**kwargs)
        
        # Aqui ela cria a instância para sua caixa de texto, multiline significa
        # múltiplas linhas.
        textinput = TextInput(text='Hello world', multiline=False)

        # A função bind vínculara algo, para quando aquilo acontecer ela chamar uma 
        # função. No exemplo abaixo o textinput é vínculado para quando o texto
        # validar (pressionar "Enter") ele fazer a função on_enter.
        textinput.bind(on_text_validate=self.on_enter)   
        
        # Aqui ele adiciona o textinput a nossa classe
        self.add_widget(textinput)

    # A instance aqui é o self, ou seja, a classe que estamos, e value é
    # a instância de textinput. Você pode usar outros nomes se quiser, botaram
    # na documentação instance e value apenas por convenção
    def on_enter(instance, value):
        print('O usuário pressionou enter e o texto foi: ', value.text, '\na instância 
         é: ', instance)

class MyApp(App):
    def build(self):
        rt = RootWid()
        return rt

MyApp().run()

Browser other questions tagged

You are not signed in. Login or sign up in order to post.