Textinput Widget in Kivy (original) (raw)
Last Updated : 9 Oct, 2025
A TextInput is a widget in Kivy that provides an editable text box on the screen. It allows users to enter single-line or multi-line text, supports cursor movement, text selection, clipboard operations and can trigger events like pressing Enter.
This Example shows a single-line input field in the app window.
Python `
from kivy.app import App from kivy.uix.textinput import TextInput
class A(App): def build(self): return TextInput(text='Type here', multiline=False)
if name == 'main': A().run()
`
**Output

Output
**Explanation:
- **TextInput(text='Type here', multiline=False): creates a single-line editable text box.
- **return TextInput(...): shows the text box as the app’s root widget.
Syntax
TextInput(text='', multiline=True, password=False, hint_text=None, font_size=None, size_hint=(1,1))
**Parameters:
- **text: initial text shown in the field.
- **multiline (bool): True allows Enter/newlines; False makes it single-line.
- **password (bool): hides characters (useful for password fields).
- **hint_text: placeholder shown when text is empty.
- **font_size: text size (e.g. '20sp' or 20).
- **size_hint: control widget sizing in layouts.
**Return: an instance of kivy.uix.textinput.TextInput (a widget to add to layouts).
Examples
**Example 1: This example shows a multi-line input field where the user can type several lines.
Python `
from kivy.app import App from kivy.uix.textinput import TextInput
class MultiLineApp(App): def build(self): return TextInput(hint_text='Type multiple lines here', multiline=True)
if name == 'main': MultiLineApp().run()
`
**Output

Multiline
**Example 2: This example creates a single-line password input that masks typed characters.
Python `
from kivy.app import App from kivy.uix.textinput import TextInput
class PasswordApp(App): def build(self): return TextInput(hint_text='Enter password', password=True, multiline=False)
if name == 'main': PasswordApp().run()
`
**Output

Password