tkinter.tix — Виджеты расширения для Tk

Исходный код: Lib/tkinter/tix.py.

Не рекомендуется, начиная с версии 3.6: Это расширение Tk не поддерживается и не должно использоваться в новом коде. Вместо него используйте tkinter.ttk.


Модуль tkinter.tix (Tk Interface Extension) предоставляет дополнительный богатый набор виджетов. Хотя в стандартной библиотеке Tk есть много полезных виджетов, они далеко не полны. Библиотека tkinter.tix предоставляет большинство часто востребованных виджетов, отсутствующих в стандартной Tk: HList, ComboBox, Control (он же SpinBox) и ряд прокручиваемых виджетов. tkinter.tix также включает множество других виджетов, которые в целом полезны в широком спектре приложений: NoteBook, FileEntry, PanedWindow и т.д.; их более 40.

С помощью всех этих новых виджетов вы можете внедрить в приложения новые методы взаимодействия, создавая более полезные и более интуитивные пользовательские интерфейсы. Вы можете спроектировать свое приложение, выбрав наиболее подходящие виджеты в соответствии с особыми потребностями вашего приложения и пользователей.

См.также

Tix Homepage

Домашняя страница для Tix. Здесь содержатся ссылки на дополнительную документацию и файлы для загрузки.

Tix Man Pages

Онлайновая версия man-страниц и справочных материалов.

Tix Programming Guide

On-line версия справочного материала для программистов.

Tix Development Applications

Tix-приложения для разработки Tix и Tkinter программ. Приложения Tide работают под Tk или Tkinter и включают TixInspect, инспектор для удаленной модификации и отладки приложений Tix/Tk/Tkinter.

Использование тиксов

class tkinter.tix.Tk(screenName=None, baseName=None, className='Tix')

Виджет верхнего уровня Tix, который в основном представляет собой главное окно приложения. Он имеет ассоциированный интерпретатор Tcl.

Классы в модуле tkinter.tix являются подклассами классов в модуле tkinter. Первый импортирует второй, поэтому для использования tkinter.tix в Tkinter достаточно импортировать один модуль. В общем, вы можете просто импортировать tkinter.tix, а вызов на верхнем уровне tkinter.Tk заменить на tix.Tk:

from tkinter import tix
from tkinter.constants import *
root = tix.Tk()

Чтобы использовать tkinter.tix, у вас должны быть установлены виджеты Tix, обычно вместе с установкой виджетов Tk. Чтобы проверить свою установку, попробуйте сделать следующее:

from tkinter import tix
root = tix.Tk()
root.tk.eval('package require Tix')

Виджеты тиксов

Tix вводит в репертуар tkinter более 40 классов виджетов.

Основные виджеты

class tkinter.tix.Balloon

Balloon, всплывающее над виджетом для предоставления помощи. Когда пользователь перемещает курсор внутри виджета, к которому привязан виджет Balloon, на экране появляется небольшое всплывающее окно с описательным сообщением.

class tkinter.tix.ButtonBox

Виджет ButtonBox создает блок кнопок, такой как обычно используется для Ok Cancel.

class tkinter.tix.ComboBox

Виджет ComboBox похож на элемент управления combo box в MS Windows. Пользователь может выбрать вариант, либо набрав текст в подвиджет ввода, либо выбрав его из подвиджета listbox.

class tkinter.tix.Control

Виджет Control также известен как виджет SpinBox. Пользователь может регулировать значение, нажимая две кнопки со стрелками или вводя значение непосредственно в поле ввода. Новое значение будет сверено с заданными пользователем верхним и нижним пределами.

class tkinter.tix.LabelEntry

Виджет LabelEntry объединяет виджет входа и метку в один мега-виджет. Его можно использовать для упрощения создания интерфейса типа «entry-form».

class tkinter.tix.LabelFrame

Виджет LabelFrame объединяет виджет фрейма и этикетку в один мега-виджет. Чтобы создать виджеты внутри виджета LabelFrame, нужно создать новые виджеты относительно подвиджета frame и управлять ими внутри подвиджета frame.

class tkinter.tix.Meter

Виджет Meter можно использовать для отображения хода выполнения фонового задания, на выполнение которого может потребоваться много времени.

class tkinter.tix.OptionMenu

OptionMenu создает кнопку меню из опций.

class tkinter.tix.PopupMenu

Виджет PopupMenu может быть использован в качестве замены команды tk_popup. Преимущество виджета Tix PopupMenu заключается в том, что для работы с ним требуется меньше кода приложения.

class tkinter.tix.Select

Виджет Select представляет собой контейнер подвиджетов кнопок. Он может быть использован для предоставления пользователю опций выбора в стиле радио-бокса или чек-бокса.

class tkinter.tix.StdButtonBox

Виджет StdButtonBox представляет собой группу стандартных кнопок для Motif-подобных диалоговых окон.

Селекторы файлов

class tkinter.tix.DirList

Виджет DirList отображает список каталогов, предыдущие каталоги и подкаталоги. Пользователь может выбрать один из каталогов, отображаемых в списке, или перейти к другому каталогу.

class tkinter.tix.DirTree

Виджет DirTree отображает древовидное представление каталога, его предыдущих каталогов и подкаталогов. Пользователь может выбрать один из каталогов, отображаемых в списке, или перейти в другой каталог.

class tkinter.tix.DirSelectDialog

Виджет DirSelectDialog представляет каталоги в файловой системе в диалоговом окне. Пользователь может использовать это диалоговое окно для навигации по файловой системе, чтобы выбрать нужный каталог.

class tkinter.tix.DirSelectBox

Окно DirSelectBox похоже на стандартное окно выбора директории Motif(TM). Обычно оно используется для выбора пользователем каталога. DirSelectBox сохраняет директории, выбранные в последнее время, в виджете ComboBox, чтобы их можно было быстро выбрать снова.

class tkinter.tix.ExFileSelectBox

Виджет ExFileSelectBox обычно встраивается в виджет tixExFileSelectDialog. Он предоставляет пользователю удобный метод выбора файлов. Стиль виджета ExFileSelectBox очень похож на стандартный файловый диалог в MS Windows 3.1.

class tkinter.tix.FileSelectBox

Окно FileSelectBox похоже на стандартное окно выбора файла Motif(TM). Обычно оно используется для выбора пользователем файла. FileSelectBox сохраняет недавно выбранные файлы в виджете ComboBox, чтобы их можно было быстро выбрать снова.

class tkinter.tix.FileEntry

Виджет FileEntry можно использовать для ввода имени файла. Пользователь может ввести имя файла вручную. В качестве альтернативы пользователь может нажать на виджет кнопки, расположенный рядом с вводом, что вызовет диалог выбора файла.

Иерархический ListBox

class tkinter.tix.HList

Виджет HList можно использовать для отображения любых данных, имеющих иерархическую структуру, например, деревьев каталогов файловой системы. Элементы списка отступают друг от друга и соединяются ветвями в соответствии с их местом в иерархии.

class tkinter.tix.CheckList

Виджет CheckList отображает список элементов для выбора пользователем. CheckList действует аналогично виджетам Tk checkbutton или radiobutton, за исключением того, что он способен обрабатывать гораздо больше элементов, чем checkbutton или radiobutton.

class tkinter.tix.Tree

Виджет Tree можно использовать для отображения иерархических данных в виде дерева. Пользователь может настроить вид дерева, открывая или закрывая его части.

Табличный ListBox

class tkinter.tix.TList

Виджет TList можно использовать для отображения данных в табличном формате. Записи списка виджета TList похожи на записи виджета Tk listbox. Основными отличиями являются (1) виджет TList может отображать элементы списка в двухмерном формате и (2) вы можете использовать графические изображения, а также несколько цветов и шрифтов для элементов списка.

Виджеты для менеджеров

class tkinter.tix.PanedWindow

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

class tkinter.tix.ListNoteBook

Виджет ListNoteBook очень похож на виджет TixNoteBook: его можно использовать для отображения множества окон в ограниченном пространстве, используя метафору блокнота. Блокнот разделен на стопку страниц (окон). В один момент времени может быть показана только одна из этих страниц. Пользователь может перемещаться по этим страницам, выбирая название нужной страницы в подвиджете hlist.

class tkinter.tix.NoteBook

Виджет NoteBook можно использовать для отображения множества окон в ограниченном пространстве, используя метафору блокнота. Блокнот разделен на стопку страниц. В один момент времени может быть показана только одна из этих страниц. Пользователь может перемещаться по этим страницам, выбирая визуальные «вкладки» в верхней части виджета NoteBook.

Типы изображений

Модуль tkinter.tix добавляет:

  • pixmap возможности всех виджетов tkinter.tix и tkinter для создания цветных изображений из файлов XPM.

  • Типы изображений Compound можно использовать для создания изображений, состоящих из нескольких горизонтальных линий; каждая линия состоит из ряда элементов (текстов, растровых изображений, картинок или пробелов), расположенных слева направо. Например, составное изображение можно использовать для одновременного отображения растрового изображения и текстовой строки в виджете Tk Button.

Различные виджеты

class tkinter.tix.InputOnly

Виджеты InputOnly должны принимать ввод от пользователя, что можно сделать с помощью команды bind (только для Unix).

Менеджер геометрии формы

Кроме того, tkinter.tix дополняет tkinter, предоставляя:

class tkinter.tix.Form

Менеджер геометрии Form основан на правилах вложения для всех виджетов Tk.

Команды тикса

class tkinter.tix.tixCommand

tix commands обеспечивают доступ к различным элементам внутреннего состояния Tix и контекста приложения Tix. Большая часть информации, которой манипулируют эти методы, относится к приложению в целом или к экрану или дисплею, а не к конкретному окну.

Для просмотра текущих настроек обычно используется:

from tkinter import tix
root = tix.Tk()
print(root.tix_configure())
tixCommand.tix_configure(cnf=None, **kw)

Запрос или изменение параметров конфигурации контекста приложения Tix. Если опция не указана, возвращается словарь всех доступных опций. Если опция указана без значения, то метод возвращает список, описывающий одну названную опцию (этот список будет идентичен соответствующему подсписку значения, возвращаемого, если опция не указана). Если указана одна или несколько пар опция-значение, то метод изменяет заданную(ые) опцию(и) так, чтобы она(и) имела(и) заданное(ые) значение(я); в этом случае метод возвращает пустую строку. Опция может быть любой из опций конфигурации.

tixCommand.tix_cget(option)

Возвращает текущее значение параметра конфигурации, заданного option. Опция может быть любой из опций конфигурации.

tixCommand.tix_getbitmap(name)

Находит растровый файл с именем name.xpm или name в одном из каталогов растровых изображений (см. метод tix_addbitmapdir()). Используя tix_getbitmap(), вы можете избежать жесткого кодирования путей к растровым файлам в вашем приложении. При успешном выполнении возвращается полное имя пути растрового файла с префиксом из символа @. Возвращаемое значение можно использовать для настройки опции bitmap виджетов Tk и Tix.

tixCommand.tix_addbitmapdir(directory)

Tix поддерживает список каталогов, в которых методы tix_getimage() и tix_getbitmap() будут искать файлы изображений. Стандартным каталогом растровых изображений является $TIX_LIBRARY/bitmaps. Метод tix_addbitmapdir() добавляет directory в этот список. Используя этот метод, файлы изображений приложения можно также найти с помощью метода tix_getimage() или tix_getbitmap().

tixCommand.tix_filedialog([dlgclass])

Возвращает диалог выбора файла, который может быть совместно использован различными вызовами данного приложения. Этот метод создаст виджет диалога выбора файла при первом вызове. Этот диалог будет возвращаться при всех последующих вызовах tix_filedialog(). Необязательный параметр dlgclass может быть передан в виде строки, чтобы указать, какой тип виджета диалога выбора файла желателен. Возможные варианты: tix, FileSelectDialog или tixExFileSelectDialog.

tixCommand.tix_getimage(self, name)

Находит файл изображения с именем name.xpm, name.xbm или name.ppm в одном из каталогов растровых карт (см. выше метод tix_addbitmapdir()). Если существует более одного файла с одинаковым именем (но разными расширениями), то тип изображения выбирается в соответствии с глубиной X дисплея: xbm изображения выбираются на монохромных дисплеях, а цветные изображения - на цветных дисплеях. Используя tix_getimage(), вы можете избежать жесткого кодирования путей к файлам изображений в вашем приложении. В случае успеха этот метод возвращает имя вновь созданного изображения, которое можно использовать для настройки опции image виджетов Tk и Tix.

tixCommand.tix_option_get(name)

Получает опции, поддерживаемые механизмом схемы Tix.

tixCommand.tix_resetoptions(newScheme, newFontSet[, newScmPrio])

Сбрасывает схему и набор шрифтов приложения Tix на newScheme и newFontSet, соответственно. Это влияет только на те виджеты, которые были созданы после этого вызова. Поэтому лучше всего вызывать метод resetoptions до создания каких-либо виджетов в приложении Tix.

Необязательный параметр newScmPrio может быть задан для сброса уровня приоритета опций Tk, установленных схемами Tix.

Из-за того, как Tk работает с базой данных опций X, после импорта и запуска Tix невозможно сбросить цветовые схемы и наборы шрифтов с помощью метода tix_config(). Вместо этого необходимо использовать метод tix_resetoptions().

Вернуться на верх