Шаг 76.
Библиотека Tkinter. Компоненты и вспомогательные классы. Нестилизуемые компоненты. Компонент Text

    На этом шаге мы приведем общие сведения по этому компоненту.


Материал этого и следующих двух шагов взят отсюда: https://younglinux.info/tkinter/text.

    В tkinter для создания многострочного текстового поля используется класс Text. По умолчанию размер поля равен 80-ти знакоместам по горизонтали и 24-м по вертикали:

from tkinter import *

root = Tk()
text = Text()
print(text['width'], text['height'])
text.pack()
root.mainloop()
Архив с файлом можно взять здесь.


Рис.1. Многострочное текстовое поле

    Однако эти свойства можно изменять с помощью опций width и height. Есть возможность конфигурировать шрифт, цвета и другое.

from tkinter import *

root = Tk()
text = Text(width=25, height=5, bg="darkgreen", fg='white', wrap=WORD)
text.pack()
root.mainloop()
Архив с файлом можно взять здесь.


Рис.2. Многострочное текстовое поле с измененными параметрами по умолчанию

    Значение WORD опции wrap позволяет переносить слова на новую строку целиком, а не по буквам.

    Если в текстовое поле вводится больше строк текста, чем его высота, то оно само будет прокручиваться вниз. При просмотре прокручивать вверх-вниз можно с помощью колеса мыши и стрелками на клавиатуре. Однако бывает удобнее пользоваться полосой прокрутки.

    В tkinter полосы прокрутки являются экземплярами класса Scrollbar (про этот компонент можно прочитать на 49 шаге). Их связывают с виджетом, которому он требуется. Это не обязательно многострочное текстовое поле. Часто полосы прокрутки бывают нужны, например, спискам.

from tkinter import *

root = Tk()
text = Text(width=20, height=7)
text.pack(side=LEFT)
scroll = Scrollbar(command=text.yview)
scroll.pack(side=LEFT, fill=Y)
text.config(yscrollcommand=scroll.set)
 
root.mainloop()
Архив с файлом можно взять здесь.


Рис.3. Многострочное текстовое поле с измененными параметрами по умолчанию

    Здесь создается полоса прокрутки, которая с помощью опции command назначает ее "отвечать" за прокрутку по вертиками текстового поля: text.yview. В свою очередь текстовому полю опцией yscrollcommand устанавливается ранее созданная полоса прокрутки: scroll.set.

    На следующем шаге мы перечислим основные методы этого виджета.




Предыдущий шаг Содержание Следующий шаг