stringtranslate.com

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

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 имеет следующие характеристики:

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

Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если написаны привязки ; 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]

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

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

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

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

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

Ссылки

  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 

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

Внешние ссылки