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

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


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

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

См.также

Домашняя страница Tix
Домашняя страница для Tix. Сюда входят ссылки на дополнительную документацию и файлы для загрузки.
Tix ман страницы
Электронная версия справочных страниц и справочных материалов.
Руководство по программированию Tix
Он-лайн версия справочника программиста.
Разработка приложений на Tix
Приложения Tix для разработки программ Tix и Tkinter. Приложения Tide работают под Tk или Tkinter и включают TixInspect, инспектор для удаленного изменения и отладки приложений Tix/Tk/Tkinter.

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

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

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

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

class tkinter.tix.Balloon

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

class tkinter.tix.ButtonBox

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

class tkinter.tix.ComboBox

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

class tkinter.tix.Control

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

class tkinter.tix.LabelEntry

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

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 можно использовать для ввода имени файла. Пользователь может ввести имя файла вручную. В качестве альтернативы пользователь может нажать виджет кнопки, который находится рядом с записью, что вызовет диалоговое окно выбора файла.

Иерархический список

class tkinter.tix.HList

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

class tkinter.tix.CheckList

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

class tkinter.tix.Tree

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

Табличный ListBox

class tkinter.tix.TList

Виджет TList можно использовать для отображения данных в табличном формате. Записи списка виджета TList аналогичны записям в виджете списка Tk. Основные отличия: (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.

Команды Tix

class tkinter.tix.tixCommand

tix команды обеспечивает доступ к различным элементам внутреннего состояния 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().