На этом шаге мы приведем общие сведения по этому компоненту.
В 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.
На следующем шаге мы перечислим основные методы этого виджета.