Tk (программа)

У этого термина существуют и другие значения, см. Tk.
Tk
Логотип программы Tk
Скриншот программы Tk
Тип библиотека элементов графического интерфейса пользователя
Разработчик Джон Оустерхаут
Написана на C
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 1991[1]
Последняя версия 8.6.13 (22 ноября 2022)
Репозиторий core.tcl.tk/tk
Лицензия BSD-подобная
Сайт tcl.tk

Tk (от англ. Toolkit — «набор инструментов», «инструментарий») — кроссплатформенная библиотека базовых элементов графического интерфейса, распространяемая с открытыми исходными текстами.

Tk был разработан Джоном Оустерхаутом как расширение для интерпретируемого языка программирования Tcl. Также, с использованием специальных библиотек, Tk может использоваться другими языками программирования[2], например Perl, Python, Ruby. Большинство из этих языков использует Tcl как мост для Tk.

Tk портирован на большинство реализаций Linux, macOS, Unix и Microsoft Windows. Начиная с Tcl/Tk 8 графический интерфейс имеет «родной» для ОС вид, то есть графические элементы будут выглядеть так же, как и стандартные для данной ОС. В версии 8.5 в Tk появилась возможность использовать движок для отрисовки элементов с поддержкой тем оформления — Ttk[3]. Кроме того, есть несколько расширений, обеспечивающих drag-and-drop с внешними приложениями, непрямоугольные окна и т. д..

Tk представляет разработчику набор Tcl-команд, предназначенных для создания компонентов и выполнения различных действий с ними. Компонент представляет собой окно в составе графического интерфейса, имеющее определённый внешний вид и выполняющее некоторые функции.

Компоненты организованы в иерархическую структуру. С точки зрения приложения существует главное, или первичное, окно, в котором создаются дочерние окна. Дочерние окна, в свою очередь, могут выступать в качестве родительских по отношению к другим окнам и т. д. Компонентами управляют диспетчеры компоновки (geometry manager), которые определяют размеры компонентов и их размещение на экране.

Tk-приложения, как и большинство оконных приложений, представляют собой программы, управляемые событиями. Компоненты Tk автоматически обрабатывают большинство событий, что упрощает задачу разработчиков по созданию приложений.

Как правило, выполнение Tk-сценария начинается с создания компонентов и размещения их с помощью диспетчера компоновки, после чего сценарий связывает обработчики событий с компонентами. После того, как интерпретатор оканчивает разбор команд, ответственных за инициализацию пользовательского интерфейса, он переходит в цикл обработки событий. С этого момента приложение начинает реагировать на действия пользователя.

Для Tk существуют наборы дополнительных компонентов, например, BWidget[4], Tix[5] или incr Widgets[6]. Особо стоит выделить BWidget, так как преимуществом его использования является отсутствие необходимости в компиляции под определённую платформу (код тулкита представляет собой «чистый» Tcl).

Ссылки

Tcl/Tk

  • www.tcl.tk (англ.) — Официальный сайт
  • wiki.tcl.tk (англ.) — Tcl Wiki: Ресурс, посвящённый Tcl
  • wiki.tcl.tk/486 (англ.) — Beginning Tk в wiki tcl tk
  • TkDocs site (англ.)
  • Tk 8.6 Manual (англ.)
  • Tcl/Tk 8.6.2 Documentation (англ.)
  • ActiveTcl 8.6 Documentation (англ.)

Ada/Tk

  • TASH (англ.) - is an Ada binding to Tcl/Tk

C++/Tk

  • CPPTk (англ.) — Tk для C++

Haskell/Tk

  • HTk (англ.) - обёртка над библиотекой Tcl/Tk для функционального языка программирования Haskell

Lisp/Tk

Perl/Tk

  • Tkx::Tutorial (англ.) — учебное пособие по Perl/Tk

Python/Tk

Ruby/Tk

  • Learn Tk (англ.) — учебное пособие по Ruby/Tk

SML/Tk

  • sml_tk: Functional Programming for Graphical User Interfaces (англ.) - Tk для Standard ML

Примечания

  1. http://www.tcl.tk/about/history.html
  2. Tcl Wiki | Languages with a Tk binding  (неопр.). Дата обращения: 3 апреля 2014. Архивировано 6 июля 2014 года.
  3. Ttk  (неопр.). Дата обращения: 15 июня 2009. Архивировано 8 ноября 2016 года.
  4. BWidget  (неопр.). Дата обращения: 15 июня 2009. Архивировано 5 декабря 2012 года.
  5. Tix  (неопр.). Дата обращения: 15 июня 2009. Архивировано 13 ноября 2012 года.
  6. incr Widgets  (неопр.). Дата обращения: 15 июня 2009. Архивировано 17 ноября 2012 года.

Литература

  • Брент Б. Уэлш, Кен Джонс, Джеффри Хоббс. Практическое программирование на Tcl и Tk = Practical Programming in Tcl and Tk. — 4-е изд. — М.: «Вильямс», 2004. — С. 1136. — ISBN 0-13-038560-3.
Перейти к шаблону «Инструментарии виджетов»
Инструментарии (наборы) элементов графического интерфейса
Низко-
уровневые
Высоко-
уровневые
Amiga OS
Mac OS и
macOS
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Windows
UNIX, под X
Кросс-
платфор-
менные
На основе Flash
На основе XML,
AJAX или SVG
На основе Java
На основе
C или C++
На основе Common Lisp
На основе Pascal
На основе Python
На основе Objective C