Tk
Windows 10上运行的 Tk 8.6.6 截图
Windows 10上运行的 Tk 8.6.6 截图
原作者约翰·奥斯特豪特英语John Ousterhout
開發者Tcl Core Team[1]
首次发布1991年,​32年前​(1991
当前版本
  • 8.6.13 (2022年11月22日;穩定版本)[2]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C
操作系统跨平台
系統平台跨平台
类型部件工具箱
许可协议BSD-风格[3]
网站www.tcl.tk

Tk是一開放原始碼图形用户界面开发工具,提供許多常用的圖形介面元件(像是選單按鈕之類),具有跨平台、輕量化等特色。

Tk最初發展於1991年,是以Tcl腳本語言撰寫的擴充套件,目前另有PerlPythonRubyCommon Lisp等多種版本,並可在LinuxUnixApple MacintochWindows等平臺上運行。

从Tcl/Tk 8开始,软件搭建的图形界面看起来将“与本地系统一致”[4]。8.5版引入了一个新的主题引擎,它在字体渲染方面也有改进。该引擎最初叫Tk Tile[5],但现在通常被称为"themed Tk"[6]。8.6版的更新则支持了PNG格式,以及倾斜文字[7]

架构

在Tk中,运用Tcl脚本编写跨平台图形用户界面框架。使用Tcl Shell(Tclsh),以命令package require Tk调用Tk。在图形操作系统下,Wish英语Wish_(Unix_shell)提供了包含Tclsh和Tk的图形窗口环境[8]

Tk有以下特性:

语言绑定

通过语言绑定,以Tcl实现的Tk可在其他编程语言中调用。已有多种语言支持Tk,完整的列表见于Tk的网站[12]。 例如Ada中的TASH模块[13] Haskell中的HTk[14],Perl,Python中的Tkinter模块,Ruby,REXX, 以及Common Lisp

Perl中调用Tk用多种方法: Tcl::Tk模块以及Tkx模块[15]均适用Tcl作为桥梁;而Perl/Tk[16]直接使用Perl实现Tk。Python的Tkinter模块使用与Tcl的语言绑定实现Tk[17]

特性

Tk提供了多种部件[18]。基本部件整合在toplevel部件里,作为可移动的浮动窗口,通常由操作系统管理[19]

基本特性

顶层部件

图形管理器

列于toplevel的基本部件使用图形管理器管理[20]

参考资料

  1. ^ Tcl/Tk Core Development. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-10-30). 
  2. ^ [TCLCORE] Tcl/Tk 8.6.13 RELEASED. 
  3. ^ Tcl/Tk Licensing Terms. Tcl Developer Xchange. [2016-11-04]. (原始内容存档于2018-06-27). 
  4. ^ Tcl/Tk 8.0. Tcl Developer Xchange. 2013-09-18 [2014-07-01]. (原始内容存档于2014-07-14). 
  5. ^ Tile: an improved themeing engine for Tk. SourceForge. [2016-11-04]. (原始内容存档于2016-11-08). 
  6. ^ Tcl/Tk 8.5 Release Announcement. Tcl Developer Xchange. 2013-09-18 [2014-07-01]. (原始内容存档于2014-06-18). 
  7. ^ Tcl/Tk 8.6 Release Announcement. Tcl Developer Xchange. 2013-09-20 [2014-07-01]. (原始内容存档于2014-06-27). 
  8. ^ wish manual page - Tk Applications. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-11-09). 
  9. ^ How to Compile Tcl. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-10-21). 
  10. ^ ttk::widget manual page - Tk Themed Widget. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-11-09). 
  11. ^ option manual page - Built-In Commands. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-11-09). 
  12. ^ Languages with a Tk binding. Tcler's Wiki. [2014-07-01]. (原始内容存档于2014-07-06). 
  13. ^ TASH. SourceForge. [2014-07-01]. (原始内容存档于2014-03-12). 
  14. ^ HTk home. Informatik - FB3 - Uni Bremen. [2016-11-04]. (原始内容存档于2014-10-18). 
  15. ^ Tkx::Tutorial - How to use Tkx. ActiveState Docs. [2016-11-01]. (原始内容存档于2016-10-10). 
  16. ^ Perl/Tk Concepts, Chapter 1 in Mastering Perl/Tk, ISBN 978-1565927162
  17. ^ Tkinter, Chapter 2.4 in Modern Tkinter for Busy Python Developers, ASIN B0071QDNLO
  18. ^ Tk Commands, version 8.6.6. Tcl Developer Xchange. [2016-11-01]. (原始内容存档于2016-10-18). 
  19. ^ Widgets', Chapter 17.2 in Tcl and the Tk Toolkit , ISBN 978-0321336330
  20. ^ Geometry Managers', Chapter 17.6 in Tcl and the Tk Toolkit , ISBN 978-0321336330

外部連結