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

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

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

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

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

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

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

Для Tk существуют наборы дополнительных компонентов, например, BWidget, Tix или incr Widgets. Особо стоит выделить BWidget, так как преимуществом его использования является отсутствие необходимости в компиляции под определённую платформу (код тулкита представляет собой «чистый» Tcl).
Q174666
кроссплатформенная
Concept
Q188860
библиотека
Concept
Q782543
графического интерфейса
Concept
Q1130645
открытыми исходными текстами
Concept
Q92636
Джоном Оустерхаутом
PER
Q183065
интерпретируемого
Concept
Q9143
языка программирования
Concept
Q5288
Tcl
MEDIA
Q42478
Perl
Concept
Q28865
Python
MEDIA
Q161053
Ruby
MEDIA
Q851989
портирован
Concept
Q388
Linux
MISC
Q14116
Mac OS X
MISC
Q11368
Unix
Concept
Q1406
Microsoft Windows
Concept
Q9135
ОС
Concept
Q558376
drag-and-drop
UNK
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
Q616360
Tk
MEDIA
+8^^http://www.w3.org/2001/XMLSchema#decimal
8
NUMBER
+8.5^^http://www.w3.org/2001/XMLSchema#decimal
8.5
NUMBER
operating system
developer
developer