Содержание страницы
24.3. Tix – Расширяющие виджеты для Tk¶Tix – Extension widgets for Tk
Модуль Tix (Tk Interface Extension) предоставляет дополнительный богатый набор
виджетов. Хотя стандартная библиотека Tk содержит много полезных виджетов, они
далеко не полны. Библиотека Tix предоставляет большинство часто необходимых
виджетов, отсутствующих в стандартном Tk: HList, ComboBox,
Control (также известный как SpinBox) и набор прокручиваемых виджетов.
Tix также включает множество других виджетов, которые обычно полезны в широком
спектре приложений: NoteBook, FileEntry,
PanedWindow и т.д.; всего их более 40.
Со всеми этими новыми виджетами можно внедрять новые техники взаимодействия в приложения, создавая более полезные и интуитивно понятные интерфейсы. Приложение можно проектировать, выбирая наиболее подходящие виджеты для удовлетворения особых потребностей приложения и пользователей.
Примечание
Tix был переименован в tkinter.tix в Python 3. Инструмент
2to3 автоматически адаптирует импорты при преобразовании исходного
кода в Python 3.
См. также
- Домашняя страница Tix
Домашняя страница
Tix. Содержит ссылки на дополнительную документацию и загрузки.- Страницы руководства Tix
Онлайн-версия страниц руководства и справочных материалов.
- Руководство по программированию Tix
Онлайн-версия справочного материала для программиста.
- Приложения Tix для разработки
Приложения Tix для разработки программ Tix и Tkinter. Приложения Tide работают в среде Tk или Tkinter и включают TixInspect – инспектор для удалённого изменения и отладки приложений Tix/Tk/Tkinter.
24.3.1. Использование Tix¶Using Tix
-
class
Tix.Tix(screenName[, baseName[, className]])¶ Виджет верхнего уровня Tix, представляющий главное окно приложения. С ним связан интерпретатор Tcl.
Классы в модуле
Tixнаследуют классы из модуляTkinter. Первый импортирует второй, поэтому для использованияTixс Tkinter, все что нужно сделать – это импортировать один модуль. В общем случае можно просто импортироватьTixи заменить вызов верхнего уровняTkinter.TkнаTix.Tk:import Tix from Tkconstants import * root = Tix.Tk()
Для использования Tix необходимо установить виджеты Tix, обычно
вместе с установкой виджетов Tk. Чтобы проверить установку, попробуйте
следующее:
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]
24.3.2. Виджеты Tix¶Tix Widgets
Tix
представляет более 40 классов виджетов в репертуар Tkinter. В каталоге
Demo/tix стандартной дистрибуции находится демонстрация всех виджетов
Tix.
24.3.2.1. Базовые виджеты¶Basic Widgets
-
class
Tix.Balloon¶ Balloon – всплывающая подсказка, появляющаяся над виджетом. Когда пользователь перемещает курсор на виджет, к которому привязан Balloon, на экране появляется небольшое всплывающее окно с описательным сообщением.
-
class
Tix.ButtonBox¶ Виджет ButtonBox создаёт группу кнопок, такую, как обычно используется для
Ok Cancel.
-
class
Tix.ComboBox¶ Виджет ComboBox аналогичен элементу управления combo box в MS Windows. Пользователь может выбрать вариант, введя текст в подвиджет ввода или выбрав из подвиджета списка.
-
class
Tix.Control¶ Виджет Control также известен как виджет
SpinBox. Пользователь может изменить значение, нажимая две кнопки со стрелками или вводя значение непосредственно в поле ввода. Новое значение будет проверено на соответствие заданным пользователем верхнему и нижнему пределам.
-
class
Tix.LabelEntry¶ Виджет LabelEntry объединяет виджет ввода и метку в один мега-виджет. Его можно использовать для упрощения создания интерфейсов типа «форма ввода».
-
class
Tix.LabelFrame¶ Виджет LabelFrame объединяет виджет фрейма и метку в один мега-виджет. Чтобы создать виджеты внутри виджета LabelFrame, создавайте новые виджеты относительно подвиджета
frameи управляйте ими внутри подвиджетаframe.
-
class
Tix.Meter¶ Виджет Meter можно использовать для отображения хода выполнения фоновой задачи, выполнение которой может занять много времени.
-
class
Tix.OptionMenu¶ Виджет OptionMenu создает кнопку меню с вариантами выбора.
-
class
Tix.PopupMenu¶ Виджет PopupMenu можно использовать как замену команды
tk_popup. Преимущество виджетаTixPopupMenuв том, что для работы с ним требуется меньше кода приложения.
-
class
Tix.Select¶ Виджет Select представляет собой контейнер для подвиджетов-кнопок. Его можно использовать для предоставления пользователю вариантов выбора в стиле радиокнопок или флажков.
-
class
Tix.StdButtonBox¶ Виджет StdButtonBox представляет собой группу стандартных кнопок для диалоговых окон в стиле Motif.
24.3.2.2. Выбор файлов¶File Selectors
-
class
Tix.DirList¶ Виджет DirList отображает список каталогов: текущего, родительских и вложенных. Пользователь может выбрать один из отображаемых в списке каталогов или перейти в другой каталог.
-
class
Tix.DirTree¶ Виджет DirTree отображает дерево каталогов: текущего, родительских и вложенных. Пользователь может выбрать один из отображаемых в списке каталогов или перейти в другой каталог.
-
class
Tix.DirSelectDialog¶ Виджет DirSelectDialog отображает каталоги файловой системы в диалоговом окне. Пользователь может использовать это диалоговое окно для навигации по файловой системе и выбора нужного каталога.
-
class
Tix.DirSelectBox¶ Виджет
DirSelectBoxпохож на стандартное диалоговое окно выбора каталога Motif(TM). Обычно используется для выбора пользователем каталога. DirSelectBox сохраняет недавно выбранные каталоги в виджет ComboBox, чтобы их можно было быстро выбрать снова.
-
class
Tix.ExFileSelectBox¶ Виджет ExFileSelectBox обычно встраивается в виджет tixExFileSelectDialog. Он предоставляет удобный способ выбора файлов для пользователя. Стиль виджета
ExFileSelectBoxочень похож на стандартное диалоговое окно файла в MS Windows 3.1.
-
class
Tix.FileSelectBox¶ Виджет FileSelectBox похож на стандартное диалоговое окно выбора файла Motif(TM). Обычно используется для выбора пользователем файла. FileSelectBox сохраняет недавно выбранные файлы в виджет
ComboBox, чтобы их можно было быстро выбрать снова.
24.3.2.3. Иерархический ListBox¶Hierarchical ListBox
-
class
Tix.HList¶ Виджет HList можно использовать для отображения любых данных, имеющих иерархическую структуру, например, деревьев каталогов файловой системы. Элементы списка имеют отступы и соединяются линиями ветвей в соответствии с их местом в иерархии.
24.3.2.4. Табличный ListBox¶Tabular ListBox
-
class
Tix.TList¶ Виджет TList можно использовать для отображения данных в табличном формате. Записи списка виджета
TListаналогичны записям в виджете Tk listbox. Основные отличия: (1) виджетTListможет отображать записи списка в двумерном формате и (2) можно использовать графические изображения, а также несколько цветов и шрифтов для записей списка.
24.3.2.5. Виджеты-менеджеры¶Manager Widgets
-
class
Tix.PanedWindow¶ Виджет PanedWindow позволяет пользователю интерактивно изменять размеры нескольких панелей. Панели могут быть расположены вертикально или горизонтально. Пользователь меняет размеры панелей, перетаскивая маркер изменения размера между двумя панелями.
-
class
Tix.ListNoteBook¶ Виджет ListNoteBook очень похож на виджет
TixNoteBook: его можно использовать для отображения множества окон в ограниченном пространстве, используя метафору записной книжки. Записная книжка разделена на стопку страниц (окон). В каждый момент времени может быть показана только одна из этих страниц. Пользователь может перемещаться по страницам, выбирая имя нужной страницы в подвиджетеhlist.
-
class
Tix.NoteBook¶ Виджет NoteBook можно использовать для отображения множества окон в ограниченном пространстве, используя метафору записной книжки. Записная книжка разделена на стопку страниц. В каждый момент времени может быть показана только одна из этих страниц. Пользователь может перемещаться по страницам, выбирая визуальные «вкладки» в верхней части виджета NoteBook.
24.3.2.6. Типы изображений¶Image Types
Модуль Tix добавляет:
возможности pixmap для всех виджетов
TixиTkinterдля создания цветных изображений из XPM-файлов.Типы изображений Compound можно использовать для создания изображений, состоящих из нескольких горизонтальных строк; каждая строка состоит из последовательности элементов (текстов, битовых карт, изображений или пробелов), расположенных слева направо. Например, составное изображение можно использовать для одновременного отображения битовой карты и текстовой строки в виджете Tk
Button.
24.3.2.7. Прочие виджеты¶Miscellaneous Widgets
24.3.3. Команды Tix¶Tix Commands
-
class
Tix.tixCommand¶ Команды tix предоставляют доступ к различным элементам внутреннего состояния
Tixи контексту приложенияTix. Большинство информации, с которой работают эти методы, относится к приложению в целом, или к экрану или дисплею, а не к конкретному окну.Для просмотра текущих настроек обычное использование:
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().