tkinter.tix — Расширение виджетов для Tk

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

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


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

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

См.также

Tix Homepage

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

Tix Man Pages

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

Tix Programming Guide

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

Tix Development Applications

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

class tkinter.tix.ButtonBox

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

class tkinter.tix.ComboBox

Виджет ComboBox аналогичен элементу управления полем со списком в 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.

Средства выбора файлов

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

class tkinter.tix.FileEntry

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

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

class tkinter.tix.HList

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

class tkinter.tix.CheckList

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

class tkinter.tix.Tree

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

Табличный список

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 можно использовать для отображения множества окон в ограниченном пространстве, используя метафору записной книжки. Записная книжка разделена на стопку страниц. Одновременно может быть показана только одна из этих страниц. Пользователь может перемещаться по этим страницам, выбирая визуальные «вкладки» в верхней части виджета «Блокнот».

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

Модуль 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 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() будут выполнять поиск файлов изображений. Стандартный каталог bitmap - это $TIX_LIBRARY/bitmaps. Метод tix_addbitmapdir() добавляет в этот список directory. Используя этот метод, файлы изображений приложений также можно найти с помощью метода tix_getimage() или tix_getbitmap().

tixCommand.tix_filedialog([dlgclass])

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

tixCommand.tix_getimage(self, name)

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

tixCommand.tix_option_get(name)

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

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

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

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

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

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