Шаг 59.
Библиотека Tkinter. Компоненты и вспомогательные классы. Нестилизуемые компоненты. Компонент Spinbox: поле ввода со счетчиком (окончание)
На этом шаге мы рассмотрим методы этого компонента и приведем пример его использования.
Компонент Spinbox поддерживает следующие методы:
- get () - возвращает текущее значение, занесенное в поле ввода, в виде строки;
- selection_get () - возвращает выделенный фрагмент значения. Если в компоненте ничего не выделено, возбуждается исключение TclError;
- index (<Позиция>) - возвращает целочисленный индекс символа, позиция которого указана в параметре. В качестве позиции можно указать:
- целое число - указывает порядковый номер символа. Нумерация символов в строке начинается с 0;
- tkinter.END - конец значения, занесенного в поле ввода;
- tkinter.INSERT - текущая позиция текстового курсора;
- tkinter.SEL_FIRST - первый символ выделенного фрагмента, если таковой имеется. Если в компоненте ничего не выделено, возбуждается исключение TclError;
- tkinter.SEL_LAST - последний символ выделенного фрагмента, если таковой имеется. Если в компоненте ничего не выделено, возбуждается исключение TclError;
- строку формата "@<Горизонтальная координата>" - символ, на который приходится точка с горизонтальной координатой, указанной относительно левого края компонента в виде целого числа в пикселях;
- insert (<Индекс>, <Вставляемая строка>) - вставляет строку, заданную вторым параметром, по индексу, указанному первым параметром;
- delete (<Начальный индекс>[, <Конечный индекс>]) - удаляет фрагмент значения между символами с указанными в параметрах индексами, исключая последний символ.
Если вызван с одним параметром, удаляется только символ, индекс которого указан в этом параметре;
- selection ("Строка для поиска", <Начальный индекс>, <Конечный индекс>) - выделяет фрагмент значения, расположенный между указанными в параметрах индексами;
- selection_clear () - убирает выделение, если оно есть;
- icursor (<Индекс>) - устанавливает текстовый курсор на символ с заданным индексом;
- invoke (<Обозначение кнопки>) - имитирует щелчок на кнопке с указанным обозначением:
- "buttonup" - верхняя кнопка или
- buttondown - нижняя кнопка;
- bbox (<Индекс>) - возвращает кортеж из четырех значений: горизонтальной и вертикальной координат левого верхнего угла воображаемого прямоугольника, охватывающего символ
с указанным индексом, его ширины и высоты. Все значения представлены в виде целых чисел и измеряются в пикселях, обе координаты указываются относительно самого компонента;
- identify (<Горизонтальная координата>, <Вертикальная координата>) - принимает координаты точки, заданные в виде целых чисел в пикселях относительно самого компонента,
и возвращает строковое обозначение части компонента, на которую пришлась эта точка. Возвращаемые значения:
- "entry" - поле ввода;
- "buttonup" - верхняя кнопка;
- "buttondown" - нижняя кнопка;
- пустая строка - точка находится вне компонента.
Вот пример использования компонента поля ввода для указания различных значений:
import tkinter
import tkinter.ttk
class Application(tkinter.ttk.Frame):
def __init__(self, master=None):
super().__init__(master)
# Обязательно указываем ширину и высоту контейнера посредством
# опций width и height соответственно
self.configure(width=200, height=100)
self.pack(padx=4, pady=4)
self.create_widgets()
self.master.title("Пример использования Spinbox")
def create_widgets(self):
# Поле ввода со счетчиком для указания числового значения
spnNumber1 = tkinter.Spinbox(self, from_=1.0, to=10.0, increment=0.5,
exportselection=0)
spnNumber1.grid(row=0, column=0)
# Вбор значения из заданного списка
lst = ["Windows Vista", "Windows 7", "Windows 8", "Windows 8.1", "Windows 10"]
spnNumber2 = tkinter.Spinbox(self, values=lst, exportselection=0)
spnNumber2.grid(row=0, column=1)
root = tkinter.Tk()
app = Application(master=root)
root.mainloop()
Архив с файлом можно взять
здесь.
Рис.1. Компонент Spinbox c различными способами выбора
На следующем шаге мы рассмотрим виджет PanedWindow.
Предыдущий шаг
Содержание
Следующий шаг