Шаг 35.
Библиотека Tkinter. Компоненты и вспомогательные классы. Стилизуемые компоненты. Компонент Entry: поле ввода
На этом шаге мы рассмотрим назначение, основные свойства и методы этого компонента.
Компонент поля ввода - это, как мы уже знаем, класс Entry. Доступные для него опции:
- textvariable - указывает метапеременную, хранящую значение, которое будет присутствовать в компоненте. Метапеременная может быть любого типа;
- exportselection - управляет автоматическим занесением выделенного в поле ввода текста в буфер обмена. Если указано значение 1, выделенный текст будет занесен в буфер обмена
(поведение по умолчанию), если 0 - не будет;
- justify - задает выравнивание текста в компоненте. Поддерживаются значения
- tkinter.LEFT - выравнивание по левому краю (поведение по умолчанию),
- tkinter.CENTER - по середине и
- tkinter.RIGHT - по правому краю;
- width - задает ширину компонента в виде целого числа в символах текста. Значение по умолчанию - 20;
- font - устанавливает шрифт, которым будет выводиться текст. Более подробно об указании шрифтов в библиотеке Tkinter мы поговорим чуть позже;
- show - задает символ, которым будет представляться все символы значения, занесенного в компонент. Так, если указать символ *, все символы введенного в поле ввода текста
будут представляться звездочками. Значение по умолчанию - None (символы значения выводятся как есть);
- validatecommand - задает функцию (метод), которая будет использоваться для проверки занесенного в компонент значения;
- validate - задает момент времени, в который будет выполняться проверка занесенного в компонент значения. Реализацию проверки введенного в компонент значения мы рассмотрим чуть позже;
- invalidcommand - задает функцию (метод), которая будет вызвана в случае, если проверка занесенного в поле ввода значения прошла неуспешно.
Опции, задаваемые только посредством стилей:
- foreground - цвет текста;
- highlightcolor - цвет выделения, обозначающего, что компонент имеет фокус ввода;
- highlightthickness - толщина рамки выделения, обозначающего, что компонент имеет фокус ввода;
- selectforeground - цвет выделенного текста;
- selectbackground - цвет фона выделенного текста.
Класс Entry поддерживает довольно много методов:
- get () - возвращает текущее значение, занесенное в поле ввода, в виде строки;
- icursor (<Позиция>) - устанавливает текстовый курсор в заданную в параметре позицию. Позиция задается в стандарте библиотеки Tkinter и может представлять
собой одно из следующих значений:
- целое число - указывает порядковый номер символа. Нумерация символов в строке начинается с 0;
- tkinter.END - конец значения, занесенного в поле ввода;
- tkinter.INSERT - текущая позиция текстового курсора;
- tkinter.ANCHOR - первый символ выделенного фрагмента (если таковой имеется);
- строка формата "@<Горизонтальная координата>" - символ с горизонтальной координатой, указанной относительно левого края компонента в виде целого числа в пикселях.
Вот пара примеров:
# Устанавливаем курсор перед символом №10
entValue.icursor(9)
# Устанавливаем текстовый курсор в конец строки
entValue.icursor(tkinter.END)
- insert (<Позиция>, <Вставляемая строка>) - вставляет строку, заданную вторым параметром, в позицию, указанную первым параметром:
# Вставляем в начало строки фрагмент "Примечание. "
entValue.insert(0, "Примечание. ")
# Вставляем в текущую позицию курсора пробел
entValue.insert(tkinter.INSERT, " ")
- delete (<Начальная позиция>[, <Конечная позиция>]) - удаляет все символы, находящиеся между указанными в параметрах начальной и конечной позициями, но не
включая последний символ. Если второй параметр не указан, удаляется только символ, расположенный в начальной позиции;
- select_range (<Начальная позиция>, <Конечная позиция>) - выделяет фрагмент, расположенный между указанными начальной и конечной позициями, но не
включая последний символ:
# Выделяем первые 5 символов
entValue.select_range(0, 5)
# Выделяем все значение
entValue.select_range(0, tkinter.END)
- select_from (<Позиция>) - устанавливает текстовый курсор в указанную позицию и выделяет находящийся в ней символ;
- select_to (<Позиция>) - выделяет фрагмент, начиная с текущей позиции текстового курсора и заканчивая указанной позицией, но не включая ее;
- select adjust (<Позиция>) - расширяет выделенный фрагмент в ту или иную сторону таким образом, чтобы он включил символ с заданной позицией. Если символ с такой позицией уже находится в составе выделенного фрагмента, ничего не делает;
- select_present () - возвращает True, если какой-либо фрагмент значения выделен, и False - в противном случае;
- index (<Позиция>) - прокручивает содержимое поля ввода по горизонтали таким образом, чтобы символ с указанной позицией стал самым левым из видимых символов. Если значение полностью помещается в компоненте, ничего не делает.
На следующем шаге мы рассмотрим задание шрифта.
Предыдущий шаг
Содержание
Следующий шаг