Виджет Tkinter Text в Python с примерами
Виджет Tkinter Text используется в Python для добавления текстового редактора в ваше приложение.
- Знакомство с виджетом Tkinter Text
- Вставка начального контента
- Извлечение текстового значения
- Отключение виджета «Текст»
Знакомство с виджетом Tkinter Text
Виджет Text позволяет отображать и редактировать многострочные текстовые области с различными стилями. Помимо простого текста, виджет Текст поддерживает встроенные изображения и ссылки.
Для создания виджета Text используется следующий синтаксис:
text = tk.Text(master, conf={}, **kw)
В этом синтаксисе:
- master является родительским компонентом виджета «Text».
- Cnf — это словарь, определяющий конфигурацию виджета.
- Kw — это один или несколько ключевых аргументов, используемых для настройки виджета «Text».
Обратите внимание, что виджет «Text» доступен только в модуле Tkinter, а не в модуле Tkinter.ttk.
В следующем примере создается виджет «Text» с восемью строками и размещается в корневом окне:
from tkinter import Tk, Text root = Tk() root.resizable(False, False) root.title("Text Widget Example") text = Text(root, height=8) text.pack() root.mainloop()
Выход:
В этом примере аргумент height указывает количество строк виджета «Text».
Вставка начального контента
Для вставки содержимого в текстовую область используется метод insert(). Например:
from tkinter import Tk, Text root = Tk() root.resizable(False, False) root.title("Text Widget Example") text = Text(root, height=8) text.pack() text.insert('1.0', 'This is a Text widget demo') root.mainloop()
Выход:
Первый аргумент метода insert() — это позиция, куда вы хотите вставить текст.
Позиция имеет следующий формат:
'line.column'
В приведенном выше примере «1.0» означает строку 1, символ 0, который является первым символом первой строки в текстовой области.
Извлечение текстового значения
Чтобы получить содержимое виджета Text, используйте его метод get(). Например:
text_content = text.get('1.0','end')
Метод get() принимает два аргумента. Первый аргумент — начальная позиция, второй — конечная позиция.
Чтобы извлечь только часть текста, вы можете указать разные начальную и конечную позиции.
Отключение виджета «Текст»
Чтобы запретить пользователям изменять содержимое виджета «Text», вы можете отключить его, установив для параметра состояния значение «disabled» следующим образом:
text['state'] = 'disabled'
Чтобы снова включить редактирование, вы можете изменить параметр состояния на normal:
text['state'] = 'normal'