Tk (программа)
| Tk | |
|---|---|
| | |
| Tk 8.6.6 в Windows 10 | |
| Тип | библиотека элементов графического интерфейса пользователя |
| Автор | ДжонАустерхаут |
| Разработчик | Tcl Core Team[1] |
| Написана на | Си |
| Операционная система | Кроссплатформенное программное обеспечение |
| Первый выпуск | 1991 |
| Аппаратная платформа | Кроссплатформенное программное обеспечение |
| Последняя версия | |
| Репозиторий | core.tcl.tk/tk |
| Лицензия | BSD-style[3] |
| Сайт | tcl.tk |
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).
Примечания
- ↑ Tcl/Tk Core Development. Tcl Developer Xchange. Дата обращения: 1 ноября 2016.
- ↑ [TCLCORE Tk 9.0.2 RELEASED] — 2025.
- ↑ Tcl/Tk Licensing Terms. Tcl Developer Xchange. Дата обращения: 4 ноября 2016.
- ↑ Tcl Wiki | Languages with a Tk binding. Дата обращения: 3 апреля 2014. Архивировано 6 июля 2014 года.
- ↑ Ttk. Дата обращения: 15 июня 2009. Архивировано 8 ноября 2016 года.
- ↑ BWidget. Дата обращения: 15 июня 2009. Архивировано 5 декабря 2012 года.
- ↑ Tix. Дата обращения: 15 июня 2009. Архивировано 13 ноября 2012 года.
- ↑ incr Widgets. Дата обращения: 15 июня 2009. Архивировано 17 ноября 2012 года.
Литература
- Брент Б. Уэлш, Кен Джонс, Джеффри Хоббс. Практическое программирование на Tcl и Tk = Practical Programming in Tcl and Tk. — 4-е изд. — М.: «Вильямс», 2004. — С. 1136. — ISBN 0-13-038560-3.
Ссылки
- Tcl/Tk
- www.tcl.tk (англ.) — официальный сайт
- TkDocs site (англ.)
- Tk 8.6 Manual (англ.)
- Tcl/Tk 8.6.2 Documentation (англ.)
- ActiveTcl 8.6 Documentation (англ.)
- Ada/Tk
- C++/Tk
- CPPTk (англ.) — Tk для C++
- Haskell/Tk
- Lisp/Tk
- LTK (англ.) — Tk для Common Lisp
- Perl/Tk
- Tkx::Tutorial (англ.) — учебное пособие по Perl/Tk
- Python/Tk
- Ruby/Tk
- SML/Tk
- sml_tk: Functional Programming for Graphical User Interfaces (англ.) — Tk для Standard ML








