Документация Python неофициальный перевод
Содержание страницы

tkinter.tix – Расширяющие виджеты для Tktkinter.tix – Extension widgets for Tk

Модуль tkinter.tix (Tk Interface Extension) предоставляет дополнительный богатый набор виджетов. Хотя стандартная библиотека 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.

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

class tkinter.tix.Tix(screenName[, baseName[, className]])

Виджет верхнего уровня 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')

Если это не сработает, значит, есть проблема с установкой Tk, которую необходимо решить, прежде чем продолжать. Используйте переменную окружения TIX_LIBRARY, чтобы указать каталог установленной библиотеки Tix, и убедитесь, что динамическая библиотека объектного кода (tix8183.dll или libtix8183.so) находится в том же каталоге, что и динамическая библиотека объектного кода Tk (tk8183.dll или libtk8183.so). В каталоге с динамической библиотекой также должен быть файл pkgIndex.tcl (регистрозависимый), который содержит строку:

package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]

Виджеты TixTix Widgets

Tix добавляет более 40 классов виджетов в репертуар Tkinter. Все эти tkinter.tix виджеты демонстрируются в каталоге Demo/tix стандартной поставки.

Базовые виджетыBasic Widgets

class tkinter.tix.Balloon
Balloon – всплывающая подсказка, появляющаяся над виджетом. Когда пользователь перемещает курсор на виджет, к которому привязан Balloon, на экране появляется небольшое всплывающее окно с описательным сообщением.
class tkinter.tix.ButtonBox
Виджет ButtonBox создаёт рамку с кнопками, как обычно используется для Ok Cancel.
class tkinter.tix.ComboBox
Виджет ComboBox похож на элемент управления combo box в MS Windows. Пользователь может сделать выбор, введя значение в подвиджет ввода (entry) или выбрав из подвиджета списка (listbox).
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.

Выбор файловFile Selectors

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

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

class tkinter.tix.HList
Виджет HList можно использовать для отображения любых данных, имеющих иерархическую структуру, например, деревьев каталогов файловой системы. Элементы списка имеют отступы и соединяются линиями ветвей в соответствии с их местом в иерархии.
class tkinter.tix.CheckList
Виджет CheckList отображает список элементов для выбора пользователем. CheckList работает аналогично виджетам Tk Checkbutton или Radiobutton, но может обрабатывать гораздо больше элементов, чем они.
class tkinter.tix.Tree
Виджет Tree можно использовать для отображения иерархических данных в виде дерева. Пользователь может настраивать вид дерева, открывая или закрывая его части.

Табличный ListBoxTabular ListBox

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

Менеджеры виджетовManager Widgets

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

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

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

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

Прочие виджетыMiscellaneous Widgets

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

Менеджер геометрии FormForm Geometry Manager

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

class tkinter.tix.Form
Менеджер геометрии Form, основанный на правилах привязки для всех виджетов Tk.

Команды TixTix Commands

class tkinter.tix.tixCommand

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

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

import Tix
root = Tix.Tk()
print(root.tix_configure())
tixCommand.tix_configure([cnf], **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() должен применяться.