Tkinter provides several widgets for handling text input, including the Entry
widget for single-line input and the Text
widget for multi-line input. See how to use these widgets to capture and process text input in your Tkinter applications.
1. Single-Line Input with Entry Widget
The Entry
widget is used for single-line text input, such as names, email addresses, or search terms.
Example: Getting Input from an Entry Widget
import tkinter as tk
def get_input():
input_text = entry.get()
print(f"Input: {input_text}")
result_label.config(text=f"You entered: {input_text}")
root = tk.Tk()
root.title("Entry Widget Example")
entry = tk.Entry(root, width=30)
entry.pack(pady=10)
get_button = tk.Button(root, text="Get Input", command=get_input)
get_button.pack(pady=5)
result_label = tk.Label(root, text="")
result_label.pack(pady=5)
root.mainloop()
This code creates an Entry
widget and a button. When the button is clicked, the get_input()
function retrieves the text from the entry using entry.get()
and displays it in a label.
2. Multi-Line Input with Text Widget
The Text
widget is used for multi-line text input, such as paragraphs, code snippets, or log messages.
Example: Getting Input from a Text Widget
import tkinter as tk
def get_text():
text_content = text_widget.get("1.0", tk.END).strip()
print(f"Text Content: {text_content}")
result_label.config(text=f"You entered: {text_content}")
root = tk.Tk()
root.title("Text Widget Example")
text_widget = tk.Text(root, width=40, height=10)
text_widget.pack(pady=10)
get_button = tk.Button(root, text="Get Text", command=get_text)
get_button.pack(pady=5)
result_label = tk.Label(root, text="")
result_label.pack(pady=5)
root.mainloop()
This code creates a Text
widget and a button. When the button is clicked, the get_text()
function retrieves the text from the widget using text_widget.get("1.0", tk.END)
and displays it in a label. The strip()
method removes leading and trailing whitespace.
3. Inserting and Deleting Text
You can also insert and delete text in both Entry
and Text
widgets programmatically.
Example: Inserting and Deleting Text in an Entry Widget
import tkinter as tk
def insert_text():
entry.insert(tk.END, " Additional Text")
def delete_text():
entry.delete(0, tk.END)
root = tk.Tk()
root.title("Entry Widget Example")
entry = tk.Entry(root, width=30)
entry.pack(pady=10)
insert_button = tk.Button(root, text="Insert Text", command=insert_text)
insert_button.pack(pady=5)
delete_button = tk.Button(root, text="Delete Text", command=delete_text)
delete_button.pack(pady=5)
root.mainloop()
Example: Inserting and Deleting Text in a Text Widget
import tkinter as tk
def insert_text():
text_widget.insert(tk.END, " Additional Text\n")
def delete_text():
text_widget.delete("1.0", tk.END)
root = tk.Tk()
root.title("Text Widget Example")
text_widget = tk.Text(root, width=40, height=10)
text_widget.pack(pady=10)
insert_button = tk.Button(root, text="Insert Text", command=insert_text)
insert_button.pack(pady=5)
delete_button = tk.Button(root, text="Delete Text", command=delete_text)
delete_button.pack(pady=5)
root.mainloop()