Тк (программное обеспечение)

Набор инструментов или фреймворк графического интерфейса пользователя

Тк
Оригинальный автор(ы)Джон Оустерхаут
Разработчик(и)Основная команда Tcl [1]
Первоначальный выпуск1991 ; 33 года назад ( 1991 )
Стабильный релиз
9.0.0 [2]  / 26 сентября 2024 г.
Репозиторий
  • ядро.tcl.tk/tk
Написано вС
Операционная системаКроссплатформенный
ПлатформаКроссплатформенный
ТипНабор инструментов для виджетов
ЛицензияBSD -стиль [3]
Веб-сайтtcl.tk

Tkкроссплатформенный набор инструментов для виджетов , который предоставляет библиотеку базовых элементов виджетов GUI для создания графического пользовательского интерфейса (GUI) на многих языках программирования. Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное под лицензией программного обеспечения в стиле BSD .

Tk предоставляет множество виджетов, обычно необходимых для разработки настольных приложений, таких как кнопка, меню, холст, текст, рамка, метка и т. д. Tk был портирован для работы на большинстве разновидностей Linux , macOS , Unix и Microsoft Windows . Как и Tcl , Tk поддерживает Unicode в пределах Basic Multilingual Plane , но он еще не был расширен для обработки текущего расширенного полного Unicode (например, UTF-16 из UCS-2, который поддерживает Tk).

Tk был разработан с возможностью расширения, и доступен широкий спектр расширений, которые предлагают новые виджеты или другие возможности. [4] [5]

Начиная с Tcl/Tk 8, он предлагает «родной вид и ощущения» (например, меню и кнопки отображаются в стиле «родного» программного обеспечения для любой платформы). [6] Основные моменты версии 8.5 включают новый движок тем, первоначально называвшийся Tk Tile, [7] но теперь его обычно называют «тематическим Tk», а также улучшенную визуализацию шрифтов. [8] Основные моменты версии 8.6 включают поддержку PNG и наклонного текста. [9]

История

Tk был разработан Джоном Оустерхаутом как расширение для языка сценариев Tcl . Впервые он был публично выпущен в 1991 году. [10] Версионирование Tk осуществлялось отдельно от Tcl до версии 8.0.

Tk был изначально написан для Unix/X11 и оказался чрезвычайно популярен среди программистов в 1990-х годах благодаря тому, что его было легче изучать и использовать, чем Motif и другие наборы инструментов X11 того времени. [11] Tk также был портирован на платформы Microsoft Windows и Macintosh, начиная с Tk 4.2 и улучшен с нативным внешним видом и поведением в Tk 8.0 (выпущен в 1997 году). Чтобы отметить популярность и значимость Tk в 1990-х годах, Оустерхауту в 1997 году была вручена премия ACM Software System Award за Tcl/Tk: [12]

Победитель премии ACM Software System Award: Джон К. Оустерхаут

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

Интерес к Tk значительно ослабел с конца 1990-х и далее. Внешний вид и поведение по умолчанию в Unix по-прежнему эмулировали Motif , несмотря на массовую замену Motif такими инструментами, как FLTK , Qt и GTK . [13] Виджеты, которые стали широко использоваться в приложениях (например, деревья, выпадающие списки , блокноты с вкладками), не были доступны в ядре Tk, а только через несколько, часто конкурирующих дополнений. [14]

Tk 8.5, выпущенный в конце 2007 года, исправил некоторые из этих проблем, добавив отсутствующие виджеты в ядро, внедрив новый движок тем и модернизировав внешний вид и поведение в Unix. [8] Однако, поскольку для внедрения этих улучшений потребовались некоторые изменения кода, многие существующие приложения сохраняют старый стиль, вдохновленный Motif, которым и прославился Tk. [15]

Архитектура

Tk — это платформенно-независимый GUI- фреймворк , разработанный для Tcl. Из оболочки Tcl (tclsh) Tk может быть вызван с помощью команды package require Tk. Программа wish (WIndowing SHell) предоставляет способ запуска оболочки tclsh в графическом окне, а также предоставляет Tk. [16]

Tk имеет следующие характеристики:

  • Платформенно-независимый : как и Tcl, Tk интерпретируется. Он был портирован на множество платформ и может легко работать на всех из них без изменений. [17]
  • Настраиваемость : почти все функции виджета в Tk можно настраивать с помощью опций во время создания виджета или позже с помощью команды configure. [18]
  • Конфигурируемый : многие из опций могут храниться в базе данных опций, что значительно упрощает параметризацию внешнего вида приложения (например, цветовой схемы). Это также означает, что сохранение опций, специфичных для приложения, сводится лишь к сохранению команд добавления опций и их выполнению при загрузке приложения. [19]

Языковые привязки

Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если написаны привязки ; Tk интегрирован с языком Tcl. Различные другие языки имеют привязки для Tk, частичный список которых находится на веб-сайте Tk. [20] Существуют привязки для дополнительных языков, которые могут не быть перечислены, включая Ada (называется TASH), [21] Haskell (называется HTk), [22] Perl , Python (называется Tkinter ), R (через стандартный пакет: tcltk), Ruby , Rexx и Common Lisp .

Существует несколько способов использования Tk из Perl : модули Tcl::Tk и Tkx Perl, [23] оба из которых используют Tcl в качестве моста для доступа к Tk, и Perl/Tk, [24] который обеспечивает собственный доступ Perl к структурам Tk. Связывание Python использует Tcl в качестве моста к Tk. [25]

Функции

Tk предоставляет различные виджеты. [26] Базовые виджеты встроены в toplevelвиджеты, которые в свою очередь обычно размещаются операционной системой в плавающих окнах, которые можно перемещать по экрану. [27]

Базовые виджеты

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message
  • notebook
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • tk_optionMenu
  • treeview

Виджеты верхнего уровня

  • tk_chooseColor– открывает диалоговое окно , в котором пользователь может выбрать цвет.
  • tk_chooseDirectory– открывает диалоговое окно, позволяющее пользователю выбрать каталог.
  • tk_dialog– создает модальный диалог и ждет ответа.
  • tk_getOpenFile– открывает диалоговое окно, в котором пользователь может выбрать файл для открытия.
  • tk_getSaveFile– открывает диалоговое окно, в котором пользователь может выбрать файл для сохранения.
  • tk_messageBox– выводит окно сообщения и ждет ответа пользователя.
  • tk_popup– публикует всплывающее меню.
  • toplevel– создает и управляет виджетами верхнего уровня.

Менеджеры по геометрии

Базовые виджеты размещаются в toplevelокнах с помощью менеджеров геометрии: [28]

  • place– размещает виджеты в абсолютных местах
  • grid– размещает виджеты в сетке
  • pack– упаковывает виджеты в полость

Смотрите также

Ссылки

  1. ^ "Tcl/Tk Core Development". Tcl Developer Xchange . Получено 1 ноября 2016 г.
  2. ^ "[TCLCORE] Tk 9.0.0 ВЫПУЩЕН".
  3. ^ "Условия лицензирования Tcl/Tk". Tcl Developer Xchange . Получено 4 ноября 2016 г.
  4. ^ Написание виджета Tk на языке C , Глава 46 в книге «Практическое программирование на языках Tcl и Tk» , ISBN 0-13-038560-3 
  5. ^ "Расширения для Tcl и Tk". Tcler's Wiki . Получено 1 ноября 2016 г.
  6. ^ "Tcl/Tk 8.0". Tcl Developer Xchange . 18 сентября 2013 г. Получено 1 июля 2014 г.
  7. ^ "Tile: улучшенный движок тем для Tk". SourceForge . Получено 4 ноября 2016 г. .
  8. ^ ab "Tcl/Tk 8.5 Release Announcement". Tcl Developer Xchange . 18 сентября 2013 г. Получено 1 июля 2014 г.
  9. ^ "Tcl/Tk 8.6 Release Announcement". Tcl Developer Xchange . 20 сентября 2013 г. Получено 1 июля 2014 г.
  10. ^ Оустерхаут, Джон. "История Tcl". Tcl Developer Exchange . Получено 1 апреля 2010 г.
  11. ^ "Tk Backgrounder". TkDocs . Получено 4 ноября 2016 г.
  12. ^ "Джон К. Оустерхаут - Лауреат премии". ACM Awards . Получено 4 ноября 2016 г.
  13. ^ "СОВЕТ № 48: Поддержка стилей виджетов Tk". Tcl Developer Xchange . Получено 1 ноября 2016 г.
  14. ^ "treeview". Tcler's Wiki . Получено 1 ноября 2016 г.
  15. ^ "СОВЕТ № 319: Реализуйте обратную совместимость для тематических виджетов ttk в виджетах tk". Tcl Developer Xchange . Получено 1 ноября 2016 г.
  16. ^ "wish manual page - Tk Applications". Tcl Developer Xchange . Получено 1 ноября 2016 г. .
  17. ^ "Как скомпилировать Tcl". Tcl Developer Xchange . Получено 1 ноября 2016 г.
  18. ^ "ttk::widget manual page - Tk Themed Widget". Tcl Developer Xchange . Получено 1 ноября 2016 г. .
  19. ^ "страница руководства по опциям - Встроенные команды". Tcl Developer Xchange . Получено 1 ноября 2016 г. .
  20. ^ "Языки с привязкой Tk". Tcler's Wiki . Получено 1 июля 2014 г.
  21. ^ "TASH". SourceForge . Получено 1 июля 2014 г. .
  22. ^ "HTk дом" . Информатик-FB3-Университет Бремена . Проверено 4 ноября 2016 г.
  23. ^ "Tkx::Tutorial - Как использовать Tkx". ActiveState Docs . Получено 1 ноября 2016 г.
  24. ^ Perl/Tk Concepts , Глава 1 в Mastering Perl/Tk , ISBN 978-1565927162 
  25. ^ Tkinter , Глава 2.4 в Современный Tkinter для занятых разработчиков Python , ASIN  B0071QDNLO
  26. ^ "Tk Commands, версия 8.6.6". Tcl Developer Xchange . Получено 1 ноября 2016 г. .
  27. ^ Виджеты , Глава 17.2 в Tcl и Tk Toolkit , ISBN 978-0321336330 
  28. ^ Менеджеры геометрии , Глава 17.6 в Tcl и Tk Toolkit , ISBN 978-0321336330 

Дальнейшее чтение

  • Оустерхаут, Джон К.; Джонс, Кен (2009). Tcl и Tk Toolkit (2-е изд.). Эддисон Уэсли. ISBN 978-0-321-33633-0. Получено 4 ноября 2012 г.
  • Фостер-Джонсон, Эрик (1997). Графические приложения с Tcl и Tk (2-е изд.). Нью-Йорк, Нью-Йорк: M&T Books. ISBN 1-55851-569-0. Получено 4 ноября 2012 г.
  • Брент Б. Уэлч, Практическое программирование на Tcl и Tk , Prentice Hall , Аппер Сэдл Ривер, Нью-Джерси, США, ISBN 0-13-038560-3 , 2003 
  • Дж. Адриан Циммер, Tcl/Tk для программистов , IEEE Computer Society , распространяется John Wiley and Sons, ISBN 0-8186-8515-8 , 1998 
  • Марк Харрисон и Майкл Макленнан, Эффективное программирование Tcl/Tk , Эддисон-Уэсли , Рединг, Массачусетс, США, ISBN 0-201-63474-0 , 1998 
  • Берт Уилер, Tcl/Tk 8.5 Programming Cookbook , Packt Publishing , Бирмингем, Англия, Великобритания, ISBN 1849512981 , 2011 
  • Клиф Флинт Tcl/Tk, Третье издание: Руководство разработчика , ISBN 0123847176 , 2012 
  • Официальный сайт
  • Вики Tcler
  • Руководство по эксплуатации Tk 8.6
  • Tk docs: современный учебник Tk для Tcl, Ruby, Perl и Python
  • Языки с привязкой Tk
Взято с "https://en.wikipedia.org/w/index.php?title=Tk_(software)&oldid=1251995205#Architecture"