Шаг 32.
Библиотека Tkinter. Компоненты... . Стилизуемые компоненты. Опции и методы, поддерживаемые всеми стилизуемыми компонентами (окончание)
На этом шаге мы перечислим методы, которые поддерживаются всеми стилизуемыми компонентами.
Теперь познакомимся с методами, которые поддерживаются всеми стилизуемыми компонентами. Помимо тех методов, что мы уже рассмотрели, это:
- destroy () - полностью уничтожает компонент;
- state ([<Комбинация состояний>]) - задает для текущего компонента заданную комбинацию состояний. Значение параметра указывается в виде последовательности строк,
каждая из которых задает одно из состояний, входящих в комбинацию. Количество состояний, входящих в комбинацию, не ограничено. Поддерживаются следующие состояния:
- active и hover - курсор мыши находится над компонентом;
- disabled - компонент недоступен для взаимодействия;
- focus - компонент имеет фокус ввода;
- pressed - на компоненте было выполнено нажатие;
- selected - если компонент является флажком или переключателем, он установлен;
- background - компонент находится в неактивном окне;
- readonly - компонент доступен только для чтения;
- alternate - компонент находится в альтернативном состоянии (зависит от типа компонента);
- invalid - в компонент занесено некорректное значение.
Если перед наименованием состояния поставлен восклицательный знак: ! - компонент примет состояние, противоположное указанному:
# Делаем кнопку btnRun недоступной для взаимодействия
btnRun.state(["disabled"])
# Делаем кнопку btnRun, наоборот, доступной для взаимодействия
btnRun.state(["!disabled"])
# Делаем флажок chkAccept доступным для взаимодействия и установленным
chkAccept.state(["!disabled", "checked"])
Если метод state() вызван без параметров, он возвращает кортеж, содержащий строковые обозначения состояний, в которых находится текущий элемент управления:
print(btnShow.state())
# Результат: ('active', 'focus', 'hover')
# Кнопка btnShow имеет фокус ввода, и над ней находится курсор мыши
- instate (<Комбинация состояний>[, <Функция или метод>[, <Параметр 1>, <Параметр 2> ... ]]) - если метод вызван с двумя или большим
количеством параметров, проверяет, находится ли текущий компонент в состояниях, указанных в заданной в первом параметре комбинации, и, если находится, вызывает функцию (метод), заданную
вторым параметром. Значения, заданные в последующих параметрах, будут переданы вызванной функции (методу). Если же компонент не находится в указанной комбинации состояний, ничего не делает:
chkAccept.instate(["!disabled", "checked"], self.accept, True)
При этом, если флажок chkAccept доступен для взаимодействия и установлен, будет вызван метод accept(), который получит в качестве параметра значение True.
Если метод instate() вызван всего с одним параметром, он возвращает True, если компонент находится в состояниях, указанных в заданной в первом параметре комбинации, и False - в противном случае:
if chkAccept.instate(["!disabled", "checked"]):
self.accept(True)
- selection_get () - возвращает выделенный в компоненте фрагмент текста в виде строки. Если в компоненте текст не выделен, или если компонент вообще не поддерживает выделение
фрагментов текста, возбуждается исключение TclError;
- selection_clear () - убирает выделение с любого фрагмента текста в компоненте;
- focus_set () - принудительно переносит фокус ввода на текущий компонент. Если приложение в данный момент неактивно, выполняет перенос фокуса ввода, когда приложение активизируется;
- focus_force () - принудительно переносит фокус ввода на текущий компонент, даже если приложение в данный момент неактивно;
- focus_get () - возвращает компонент, имеющий в данный момент фокус ввода, даже если он находится на другом экране. Если ни один компонент не имеет фокуса ввода, возвращается None;
- focus_displayof () - возвращает компонент, имеющий в данный момент фокус ввода и находящийся на том же экране, что и текущий компонент. Если ни один компонент не имеет фокуса ввода, возвращается None;
- focus_lastfor () - возвращает компонент, который ранее имел фокус ввода и находится в том же окне, что и текущий компонент. Если ни один компонент до этого времени еще не имел фокуса ввода, возвращает контейнер, где располагается текущий компонент;
- tk_focusNext () - возвращает компонент, который получит фокус ввода после нажатия клавиши Tab. Таковым является компонент, выведенный на экран сразу после текущего;
- tk_focusPrev () - возвращает компонент, который получит фокус ввода после нажатия комбинации клавиш Shift+Tab. Таковым является компонент, выведенный на экран непосредственно перед текущим;
- winfo_width () - возвращает актуальную ширину текущего компонента в виде целого числа в пикселях;
- winfo_height () - возвращает актуальную высоту текущего компонента в виде целого числа в пикселях;
- winfo_reqwidth () - возвращает минимальную ширину текущего компонента, необходимую для размещения всего его содержимого, в виде целого числа в пикселях;
- winfo_reqheight () - возвращает минимальную высоту текущего компонента, необходимую для размещения всего его содержимого, в виде целого числа в пикселях;
- winfo_x () - возвращает горизонтальную координату левого верхнего угла текущего компонента относительно левого верхнего угла его контейнера в виде целого числа в пикселях;
- winfo_y () - возвращает вертикальную координату левого верхнего угла текущего компонента относительно левого верхнего угла его контейнера в виде целого числа в пикселях;
- winfo_children () - возвращает список всех компонентов, имеющихся в текущем контейнере, в том порядке, в котором они были помещены в него;
- winfo ismapped () - возвращает True, если текущий компонент выведен на экран с применением одного из диспетчеров компоновки (см. 13 шаг), и False в противном случае;
- winfo_class () - возвращает название класса текущего компонента, представленное в виде строки;
- winfo_manager () - возвращает строковое обозначение диспетчера компоновки, посредством которого текущий компонент был выведен на экран. Возвращаемые значения:
- "pack", "place", "grid", "canvas" - если компонент находится на графической канве Canvas и
- "text" - если компонент представляет собой часть текстового документа, помещенного в компонент Text.
Если компонент еще не был выведен на экран, возвращает пустую строку;
- winfo_containing (<Горизонтальная координата>, <Вертикальная координата>[, displayof=False]) - возвращает окно, которое принадлежит текущему приложению и на котором находится точка с указанными координатами.
Координаты записываются в виде целых чисел, измеряются в пикселях и отсчитываются относительно левого верхнего угла экрана - того, в котором находится главное окно приложения, если параметр displayof не указан или если его значение равно
False, или того, в котором находится текущее окно, если значение параметра displayof равно True. Если по заданным координатам нет никакого окна, принадлежащего приложению, возвращается None;
- winfo_pointerxy () - возвращает кортеж из двух значений: актуальных горизонтальной и вертикальной координат курсора мышц, вычисленных относительно левого верхнего угла главного окна приложения. Обе величины представляются в виде целых чисел в пикселях;
- winfo_pointerx () - возвращает первое значение из кортежа, генерируемого методом winfo_pointerxy();
- winfo_pointery () - возвращает второе значение из кортежа, генерируемого методом winfo_pointerxy();
- winfo_rootx () - возвращает горизонтальную координату левого верхнего угла окна, в котором находится текущий компонент, относительно левого верхнего угла экрана в виде целого числа в пикселях;
- winfo_rooty () - возвращает вертикальную координату левого верхнего угла окна, в котором находится текущий компонент, относительно левого верхнего угла экрана в виде целого числа в пикселях.
На следующем шаге мы рассмотрим компонент Frame.
Предыдущий шаг
Содержание
Следующий шаг