You are currently viewing Python Tkinter – Виджет с прокручиваемым текстом

Python Tkinter – Виджет с прокручиваемым текстом

Tkinter — это встроенная стандартная библиотека python. С помощью Tkinter можно легко создавать множество приложений с графическим интерфейсом. В Tkinter доступны различные типы виджетов, такие как кнопка, рамка, метка, меню, прокручиваемый текст, холст и многое другое. Виджет — это элемент, который предоставляет различные элементы управления. Виджет ScrolledText — это текстовый виджет с полосой прокрутки. То inter.scrolledtext модуль предоставляет текстовый виджет вместе с полосой прокрутки. Этот виджет помогает пользователю с удобством вводить несколько строк текста. Вместо добавления полосы прокрутки в текстовый виджет мы можем использовать виджет scrolledtext, который помогает вводить любое количество строк текста.

Пример 1 : 

Код Python, отображающий виджет прокрутки текста.

# Python program demonstrating
# ScrolledText widget in tkinter

import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext

# Creating tkinter main window
win = tk.Tk()
win.title("ScrolledText Widget")

# Title Label
ttk.Label(win,
		text = "ScrolledText Widget Example",
		font = ("Times New Roman", 15),
		background = 'green',
		foreground = "white").grid(column = 0,
									row = 0)

# Creating scrolled text
# area widget
text_area = scrolledtext.ScrolledText(win,
									wrap = tk.WORD,
									width = 40,
									height = 10,
									font = ("Times New Roman",
											15))

text_area.grid(column = 0, pady = 10, padx = 10)

# Placing cursor in the text area
text_area.focus()
win.mainloop()

Выход:

Пример 2: 

Виджет ScrolledText делает текст tkinter доступным только для чтения.

# Importing required modules

import tkinter as tk
import tkinter.scrolledtext as st

# Creating tkinter window
win = tk.Tk()
win.title("ScrolledText Widget")

# Title Label
tk.Label(win,
		text = "ScrolledText Widget Example",
		font = ("Times New Roman", 15),
		background = 'green',
		foreground = "white").grid(column = 0,
									row = 0)

# Creating scrolled text area
# widget with Read only by
# disabling the state
text_area = st.ScrolledText(win,
							width = 30,
							height = 8,
							font = ("Times New Roman",
									15))

text_area.grid(column = 0, pady = 10, padx = 10)

# Inserting Text which is read only
text_area.insert(tk.INSERT,
"""\
This is a scrolledtext widget to make tkinter text read only.
Hi
Geeks !!!
Geeks !!!
Geeks !!!
Geeks !!!
Geeks !!!
Geeks !!!
Geeks !!!
""")

# Making the text read only
text_area.configure(state ='disabled')
win.mainloop()

Выход:

В первом примере, как вы можете видеть курсор, пользователь может ввести любое количество строк текста. Во втором примере пользователь может просто прочитать текст, отображаемый в текстовом поле, и не может редактировать/вводить какие-либо строки текста. Мы можем заметить, что полоса прокрутки автоматически исчезает, если текст, введенный пользователем, меньше размера виджета.