tkinter.tix.md
1> **Источник:** https://python-all.ru/3.1/library/tkinter.tix.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 24.3. `tkinter.tix` – Виджеты расширения для Tk89Модуль `tkinter.tix` (Tk Interface Extension) предоставляет дополнительный богатый набор виджетов. Хотя стандартная библиотека Tk содержит много полезных виджетов, они далеко не полны. Библиотека `tkinter.tix` предоставляет большинство часто необходимых виджетов, отсутствующих в стандартном Tk: [`HList`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.HList), [`ComboBox`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.ComboBox), [`Control`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.Control) (также известный как SpinBox) и различные прокручиваемые виджеты. `tkinter.tix` также включает множество других виджетов, полезных в широком спектре приложений: [`NoteBook`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.NoteBook), [`FileEntry`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.FileEntry), [`PanedWindow`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.PanedWindow) и т.д.; всего их более 40.1011Со всеми этими новыми виджетами можно внедрять новые техники взаимодействия в приложения, создавая более полезные и интуитивно понятные интерфейсы. Приложение можно проектировать, выбирая наиболее подходящие виджеты для удовлетворения особых потребностей приложения и пользователей.1213> **См. также**14>15> **[Домашняя страница Tix](https://python-all.ru/3.1/library/tkinter.tix.html)**16>17> Домашняя страница18>19> `Tix`20>21> . Она содержит ссылки на дополнительную документацию и загрузки.22>23> **[Страницы руководства Tix](https://python-all.ru/3.1/library/tkinter.tix.html)**24>25> Онлайн-версия страниц руководства и справочных материалов.26>27> **[Руководство по программированию Tix](https://python-all.ru/3.1/library/tkinter.tix.html)**28>29> Онлайн-версия справочного материала для программиста.30>31> **[Приложения Tix для разработки](https://python-all.ru/3.1/library/tkinter.tix.html)**32>33> Приложения Tix для разработки программ Tix и Tkinter. Приложения Tide работают в среде Tk или Tkinter и включают34>35> **TixInspect**36>37> – инспектор для удалённого изменения и отладки приложений Tix/Tk/Tkinter.3839## 24.3.1. Использование Tix4041#### `class tkinter.tix.Tk(screenName=None, baseName=None, className='Tix')`4243Виджет верхнего уровня Tix, представляющий главное окно приложения. С ним связан интерпретатор Tcl.4445Классы в модуле `tkinter.tix` являются подклассами классов из [`tkinter`](https://python-all.ru/3.1/library/tkinter.html#module-tkinter). Первый импортирует второй, поэтому для использования `tkinter.tix` с Tkinter достаточно импортировать один модуль. В общем случае можно просто импортировать `tkinter.tix` и заменить вызов верхнего уровня [`tkinter.Tk`](https://python-all.ru/3.1/library/tkinter.html#tkinter.Tk) на `tix.Tk`:4647```python48from tkinter import tix49from tkinter.constants import *50root = tix.Tk()51```5253Чтобы использовать `tkinter.tix`, необходимо установить виджеты Tix, обычно вместе с установкой виджетов Tk. Чтобы проверить установку, попробуйте следующее:5455```python56from tkinter import tix57root = tix.Tk()58root.tk.eval('package require Tix')59```6061Если это не сработает, значит, есть проблема с установкой Tk, которую необходимо решить, прежде чем продолжать. Используйте переменную окружения **TIX\_LIBRARY**, чтобы указать каталог установленной библиотеки Tix, и убедитесь, что динамическая библиотека объектного кода (`tix8183.dll` или `libtix8183.so`) находится в том же каталоге, что и динамическая библиотека объектного кода Tk (`tk8183.dll` или `libtk8183.so`). В каталоге с динамической библиотекой также должен быть файл `pkgIndex.tcl` (регистрозависимый), который содержит строку:6263```python64package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]65```6667## 24.3.2. Виджеты Tix6869[Tix](https://python-all.ru/3.1/library/tkinter.tix.html) добавляет более 40 классов виджетов в набор [`tkinter`](https://python-all.ru/3.1/library/tkinter.html#module-tkinter). Демонстрация всех виджетов `tkinter.tix` находится в каталоге `Demo/tix` стандартной поставки.7071### 24.3.2.1. Базовые виджеты7273#### `class tkinter.tix.Balloon`7475[Balloon](https://python-all.ru/3.1/library/tkinter.tix.html)7677– всплывающая подсказка, появляющаяся над виджетом. Когда пользователь перемещает курсор на виджет, к которому привязан Balloon, на экране появляется небольшое всплывающее окно с описательным сообщением.7879#### `class tkinter.tix.ButtonBox`8081Виджет8283[ButtonBox](https://python-all.ru/3.1/library/tkinter.tix.html)8485создаёт рамку с кнопками, как обычно используется для8687`Ok Cancel`8889.9091#### `class tkinter.tix.ComboBox`9293Виджет9495[ComboBox](https://python-all.ru/3.1/library/tkinter.tix.html)9697аналогичен элементу управления combo box в MS Windows. Пользователь может выбрать вариант, введя текст в подвиджет ввода или выбрав из подвиджета списка.9899#### `class tkinter.tix.Control`100101Виджет102103[Control](https://python-all.ru/3.1/library/tkinter.tix.html)104105также известен как виджет106107`SpinBox`108109. Пользователь может изменять значение, нажимая две кнопки со стрелками или вводя значение непосредственно в поле ввода. Новое значение будет проверяться на соответствие заданным пользователем верхнему и нижнему пределам.110111#### `class tkinter.tix.LabelEntry`112113Виджет114115[LabelEntry](https://python-all.ru/3.1/library/tkinter.tix.html)116117объединяет виджет ввода и метку в один мега-виджет. Он может быть использован для упрощения создания интерфейса типа «форма ввода».118119#### `class tkinter.tix.LabelFrame`120121Виджет122123[LabelFrame](https://python-all.ru/3.1/library/tkinter.tix.html)124125объединяет виджет рамки и метку в один мега-виджет. Для создания виджетов внутри LabelFrame необходимо создавать новые виджеты относительно подвиджета126127`frame`128129и управлять ими внутри подвиджета130131`frame`132133.134135#### `class tkinter.tix.Meter`136137Виджет138139[Meter](https://python-all.ru/3.1/library/tkinter.tix.html)140141можно использовать для отображения хода выполнения фоновой задачи, выполнение которой может занять много времени.142143#### `class tkinter.tix.OptionMenu`144145Виджет146147[OptionMenu](https://python-all.ru/3.1/library/tkinter.tix.html)148149создает кнопку меню с вариантами выбора.150151#### `class tkinter.tix.PopupMenu`152153Виджет154155[PopupMenu](https://python-all.ru/3.1/library/tkinter.tix.html)156157может использоваться как замена команды158159`tk_popup`160161. Преимущество виджета162163`Tix`164165[`PopupMenu`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.PopupMenu)166167в том, что для его управления требуется меньше кода приложения.168169#### `class tkinter.tix.Select`170171Виджет172173[Select](https://python-all.ru/3.1/library/tkinter.tix.html)174175представляет собой контейнер для подвиджетов-кнопок. Его можно использовать для предоставления пользователю вариантов выбора в стиле радиокнопок или флажков.176177#### `class tkinter.tix.StdButtonBox`178179Виджет180181[StdButtonBox](https://python-all.ru/3.1/library/tkinter.tix.html)182183представляет собой группу стандартных кнопок для диалоговых окон в стиле Motif.184185### 24.3.2.2. Файловые селекторы186187#### `class tkinter.tix.DirList`188189Виджет190191[DirList](https://python-all.ru/3.1/library/tkinter.tix.html)192193отображает список каталогов: текущего, родительских и вложенных. Пользователь может выбрать один из отображаемых в списке каталогов или перейти в другой каталог.194195#### `class tkinter.tix.DirTree`196197Виджет198199[DirTree](https://python-all.ru/3.1/library/tkinter.tix.html)200201отображает дерево каталогов: текущего, родительских и вложенных. Пользователь может выбрать один из отображаемых в списке каталогов или перейти в другой каталог.202203#### `class tkinter.tix.DirSelectDialog`204205Виджет206207[DirSelectDialog](https://python-all.ru/3.1/library/tkinter.tix.html)208209отображает каталоги файловой системы в диалоговом окне. Пользователь может использовать это диалоговое окно для навигации по файловой системе и выбора нужного каталога.210211#### `class tkinter.tix.DirSelectBox`212213[`DirSelectBox`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.DirSelectBox)214215похож на стандартное окно выбора каталога Motif(TM). Обычно используется для выбора пользователем каталога. DirSelectBox сохраняет недавно выбранные каталоги в виджете ComboBox, чтобы их можно было быстро выбрать снова.216217#### `class tkinter.tix.ExFileSelectBox`218219Виджет220221[ExFileSelectBox](https://python-all.ru/3.1/library/tkinter.tix.html)222223обычно встраивается в виджет tixExFileSelectDialog. Он предоставляет удобный метод для выбора файлов пользователем. Стиль виджета224225[`ExFileSelectBox`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.ExFileSelectBox)226227очень похож на стандартный диалог выбора файлов в MS Windows 3.1.228229#### `class tkinter.tix.FileSelectBox`230231Виджет232233[FileSelectBox](https://python-all.ru/3.1/library/tkinter.tix.html)234235похож на стандартное диалоговое окно выбора файла Motif(TM). Обычно он используется для выбора файла пользователем. FileSelectBox сохраняет недавно выбранные файлы в виджет236237[`ComboBox`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.ComboBox)238239, чтобы их можно было быстро выбрать снова.240241#### `class tkinter.tix.FileEntry`242243Виджет244245[FileEntry](https://python-all.ru/3.1/library/tkinter.tix.html)246247может использоваться для ввода имени файла. Пользователь может ввести имя файла вручную. Альтернативно, пользователь может нажать на кнопку рядом с полем ввода, что вызовет диалог выбора файла.248249### 24.3.2.3. Иерархический ListBox250251#### `class tkinter.tix.HList`252253Виджет254255[HList](https://python-all.ru/3.1/library/tkinter.tix.html)256257можно использовать для отображения любых данных, имеющих иерархическую структуру, например, деревьев каталогов файловой системы. Элементы списка имеют отступы и соединяются линиями ветвей в соответствии с их местом в иерархии.258259#### `class tkinter.tix.CheckList`260261Виджет262263[CheckList](https://python-all.ru/3.1/library/tkinter.tix.html)264265отображает список элементов для выбора пользователем. CheckList работает аналогично виджетам Tk Checkbutton или Radiobutton, но может обрабатывать гораздо больше элементов, чем они.266267#### `class tkinter.tix.Tree`268269Виджет270271[Tree](https://python-all.ru/3.1/library/tkinter.tix.html)272273можно использовать для отображения иерархических данных в виде дерева. Пользователь может настраивать вид дерева, открывая или закрывая его части.274275### 24.3.2.4. Табличный ListBox276277#### `class tkinter.tix.TList`278279Виджет280281[TList](https://python-all.ru/3.1/library/tkinter.tix.html)282283можно использовать для отображения данных в табличном формате. Элементы списка виджета284285[`TList`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.TList)286287похожи на элементы виджета Tk listbox. Основные отличия: (1) виджет288289[`TList`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.TList)290291может отображать элементы списка в двумерном формате и (2) можно использовать графические изображения, а также несколько цветов и шрифтов для элементов списка.292293### 24.3.2.5. Виджеты-менеджеры294295#### `class tkinter.tix.PanedWindow`296297Виджет298299[PanedWindow](https://python-all.ru/3.1/library/tkinter.tix.html)300301позволяет пользователю интерактивно изменять размеры нескольких панелей. Панели могут быть расположены вертикально или горизонтально. Пользователь меняет размеры панелей, перетаскивая маркер изменения размера между двумя панелями.302303#### `class tkinter.tix.ListNoteBook`304305Виджет306307[ListNoteBook](https://python-all.ru/3.1/library/tkinter.tix.html)308309очень похож на виджет310311`TixNoteBook`312313: его можно использовать для отображения множества окон в ограниченном пространстве, используя метафору блокнота. Блокнот разделён на стопку страниц (окон). В каждый момент может быть показана только одна из этих страниц. Пользователь может перемещаться по страницам, выбирая имя нужной страницы в подвиджете314315`hlist`316317.318319#### `class tkinter.tix.NoteBook`320321Виджет322323[NoteBook](https://python-all.ru/3.1/library/tkinter.tix.html)324325можно использовать для отображения множества окон в ограниченном пространстве, используя метафору записной книжки. Записная книжка разделена на стопку страниц. В каждый момент времени может быть показана только одна из этих страниц. Пользователь может перемещаться по страницам, выбирая визуальные «вкладки» в верхней части виджета NoteBook.326327### 24.3.2.6. Типы изображений328329Модуль `tkinter.tix` добавляет:330331- [pixmap](https://python-all.ru/3.1/library/tkinter.tix.html) возможности для всех виджетов `tkinter.tix` и [`tkinter`](https://python-all.ru/3.1/library/tkinter.html#module-tkinter) по созданию цветных изображений из файлов XPM.332- Типы изображений [Compound](https://python-all.ru/3.1/library/tkinter.tix.html) можно использовать для создания изображений, состоящих из нескольких горизонтальных строк; каждая строка состоит из последовательности элементов (текста, растровых изображений, картинок или пробелов), расположенных слева направо. Например, составное изображение можно использовать для одновременного отображения растрового изображения и текстовой строки в виджете Tk `Button`.333334### 24.3.2.7. Прочие виджеты335336#### `class tkinter.tix.InputOnly`337338Виджеты339340[InputOnly](https://python-all.ru/3.1/library/tkinter.tix.html)341342предназначены для приёма ввода от пользователя, что можно сделать с помощью команды343344`bind`345346(только Unix).347348### 24.3.2.8. Менеджер геометрии формы349350Кроме того, `tkinter.tix` расширяет [`tkinter`](https://python-all.ru/3.1/library/tkinter.html#module-tkinter), предоставляя:351352#### `class tkinter.tix.Form`353354Менеджер геометрии355356[Form](https://python-all.ru/3.1/library/tkinter.tix.html)357358, основанный на правилах привязки для всех виджетов Tk.359360## 24.3.3. Команды Tix361362#### `class tkinter.tix.tixCommand`363364Команды [tix commands](https://python-all.ru/3.1/library/tkinter.tix.html) предоставляют доступ к различным элементам внутреннего состояния `Tix` и контексту приложения `Tix`. Большая часть информации, с которой работают эти методы, относится ко всему приложению в целом, или к экрану или дисплею, а не к конкретному окну.365366Для просмотра текущих настроек обычное использование:367368```python369from tkinter import tix370root = tix.Tk()371print(root.tix_configure())372```373374#### `tixCommand.tix_configure([cnf], **kw)`375376Запрашивает или изменяет параметры конфигурации контекста приложения Tix. Если параметр не указан, возвращает словарь всех доступных параметров. Если параметр указан без значения, метод возвращает список, описывающий указанный именованный параметр (этот список будет идентичен соответствующему подсписку значения, возвращаемого, если параметр не указан). Если указана одна или несколько пар «параметр-значение», метод изменяет указанный параметр(ы) на заданное значение(я); в этом случае метод возвращает пустую строку. Параметром может быть любой из параметров конфигурации.377378#### `tixCommand.tix_cget(option)`379380Возвращает текущее значение параметра конфигурации, заданного381382*option*383384. Параметр может быть любым из параметров конфигурации.385386#### `tixCommand.tix_getbitmap(name)`387388Находит файл растрового изображения с именем389390`name.xpm`391392или393394`name`395396в одном из каталогов растровых изображений (см. метод397398[`tix_addbitmapdir()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdir)399400). Используя401402[`tix_getbitmap()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmap)403404, можно избежать жёсткого указания путей к файлам растровых изображений в приложении. При успешном поиске возвращается полный путь к файлу растрового изображения с префиксом в виде символа405406`@`407408. Возвращённое значение можно использовать для настройки параметра409410`bitmap`411412виджетов Tk и Tix.413414#### `tixCommand.tix_addbitmapdir(directory)`415416Tix ведёт список каталогов, в которых методы417418[`tix_getimage()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimage)419420и421422[`tix_getbitmap()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmap)423424будут искать файлы изображений. Стандартный каталог растровых изображений –425426`$TIX_LIBRARY/bitmaps`427428. Метод429430[`tix_addbitmapdir()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdir)431432добавляет433434*directory*435436в этот список. С помощью этого метода файлы изображений приложения также можно найти, используя метод437438[`tix_getimage()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimage)439440или441442[`tix_getbitmap()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getbitmap)443444.445446#### `tixCommand.tix_filedialog([dlgclass])`447448Возвращает диалог выбора файла, который может использоваться совместно разными вызовами из этого приложения. Этот метод создаёт виджет диалога выбора файла при первом вызове. Этот диалог будет возвращаться при всех последующих вызовах449450[`tix_filedialog()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_filedialog)451452. Необязательный параметр dlgclass можно передать в виде строки, чтобы указать желаемый тип виджета диалога выбора файла. Возможные варианты:453454`tix`455456,457458`FileSelectDialog`459460или461462`tixExFileSelectDialog`463464.465466#### `tixCommand.tix_getimage(self, name)`467468Находит файл изображения с именем469470`name.xpm`471472,473474`name.xbm`475476или477478`name.ppm`479480в одном из каталогов растровых изображений (см. метод481482[`tix_addbitmapdir()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_addbitmapdir)483484выше). Если существует более одного файла с одинаковым именем (но разными расширениями), то тип изображения выбирается в зависимости от глубины X-дисплея: изображения xbm выбираются на монохромных дисплеях, а цветные изображения – на цветных. Используя485486[`tix_getimage()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_getimage)487488, можно избежать жёсткого указания путей к файлам изображений в приложении. При успешном выполнении этот метод возвращает имя созданного изображения, которое можно использовать для настройки параметра489490`image`491492виджетов Tk и Tix.493494#### `tixCommand.tix_option_get(name)`495496Получает параметры, поддерживаемые механизмом схем Tix.497498#### `tixCommand.tix_resetoptions(newScheme, newFontSet[, newScmPrio])`499500Сбрасывает схему и набор шрифтов приложения Tix на *newScheme* и *newFontSet* соответственно. Это влияет только на виджеты, созданные после этого вызова. Поэтому лучше всего вызывать метод resetoptions до создания каких-либо виджетов в приложении Tix.501502Необязательный параметр *newScmPrio* можно указать для сброса уровня приоритета параметров Tk, установленных схемами Tix.503504Из-за того, как Tk управляет базой данных опций X, после импорта и инициализации Tix сбросить цветовые схемы и наборы шрифтов невозможно с помощью метода `tix_config()`. Вместо этого необходимо использовать метод [`tix_resetoptions()`](https://python-all.ru/3.1/library/tkinter.tix.html#tkinter.tix.tixCommand.tix_resetoptions) должен применяться.505