Лучшие вопросы
Таймлайн
Чат
Перспективы
Tk (программа)
Из Википедии, свободной энциклопедии
Remove ads
Tk (от англ. Toolkit — «набор инструментов», «инструментарий») — кроссплатформенная библиотека базовых элементов графического интерфейса, распространяемая с открытыми исходными текстами.
Tk был разработан Джоном Аустерхаутом как расширение для интерпретируемого языка программирования Tcl. Также, с использованием специальных библиотек, Tk может использоваться другими языками программирования[4], например Ада (TASH), Go, Haskell (HTk), Perl (Tcl::Tk, Tkx и Perl/Tk), Python (Tkinter), R (tcltk), Ruby, REXX, Common Lisp. Из них большинство использует Tcl как мост для Tk, например Tcl::Tk и Tkx в Perl, Tkinter в Python. Некоторые, однако, используют прямой (native) доступ к структурам Tk, например Perl/Tk.
Tk портирован на большинство реализаций Linux, macOS, Unix и Microsoft Windows. Начиная с Tcl/Tk 8 графический интерфейс имеет «родной» для ОС вид, то есть графические элементы будут выглядеть так же, как и стандартные для данной ОС. В версии 8.5 в Tk появилась возможность использовать движок для отрисовки элементов с поддержкой тем оформления — Ttk[5]. Кроме того, есть несколько расширений, обеспечивающих drag-and-drop с внешними приложениями, непрямоугольные окна и ряд других возможностей.
Tk представляет разработчику набор Tcl-команд, предназначенных для создания компонентов и выполнения различных действий с ними. Компонент представляет собой окно в составе графического интерфейса, имеющее определённый внешний вид и выполняющее некоторые функции.
Компоненты организованы в иерархическую структуру. С точки зрения приложения существует главное, или первичное, окно, в котором создаются дочерние окна. Дочерние окна, в свою очередь, могут выступать в качестве родительских по отношению к другим окнам. Компонентами управляют диспетчеры компоновки (geometry manager), которые определяют размеры компонентов и их размещение на экране.
Tk-приложения, как и большинство оконных приложений, представляют собой программы, управляемые событиями. Компоненты Tk автоматически обрабатывают большинство событий, что упрощает задачу разработчиков по созданию приложений.
Как правило, выполнение Tk-сценария начинается с создания компонентов и размещения их с помощью диспетчера компоновки, после чего сценарий связывает обработчики событий с компонентами. После того, как интерпретатор оканчивает разбор команд, ответственных за инициализацию пользовательского интерфейса, он переходит в цикл обработки событий. С этого момента приложение начинает реагировать на действия пользователя.
Для Tk существуют наборы дополнительных компонентов, например, BWidget[6], Tix[7] или incr Widgets[8]. Особо стоит выделить BWidget, так как преимуществом его использования является отсутствие необходимости в компиляции под определённую платформу (код тулкита представляет собой «чистый» Tcl).
Remove ads
Функции
Суммиров вкратце
Перспектива
Tk предоставляет различные виджеты.[9] Базовые виджеты встроены в виджеты верхнего уровня (toplevel), которые, в свою очередь, обычно размещаются операционной системой в плавающих окнах, которые можно перемещать по экрану.[10]
Базовые виджеты
buttoncanvascheckbuttoncomboboxentryframelabellabelframelistboxmenumenubuttonmessagenotebookpanedwindowprogressbarradiobuttonscalescrollbarseparatorsizegripspinboxtexttk_optionMenutreeview
Виджеты верхнего уровня
tk_chooseColor– открывает диалоговое окно, в котором пользователь может выбрать цвет.tk_chooseDirectory– открывает диалоговое окно, позволяющее пользователю выбрать каталог.tk_dialog– создаёт модальный диалог и ждёт ответа.tk_getOpenFile– открывает диалоговое окно, в котором пользователь может выбрать файл для открытия.tk_getSaveFile– открывает диалоговое окно, в котором пользователь может выбрать файл для сохранения.tk_messageBox– выводит окно с сообщением и ждёт ответа пользователя.tk_popup– публикует всплывающее меню.toplevel– создаёт и управляет виджетами верхнего уровня.
Менеджеры геометрии
Базовые виджеты размещаются в окнах верхнего уровня (toplevel) с помощью менеджеров геометрии:[11]
place– размещает виджеты в абсолютных местахgrid– располагает виджеты в сеткеpack– упаковывает виджеты в полость
Remove ads
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
