Windows 10上运行的 Tk 8.6.6 截图 | |
原作者 | 约翰·奥斯特豪特 |
---|---|
開發者 | Tcl Core Team[1] |
首次发布 | 1991年 |
当前版本 |
|
源代码库 | |
编程语言 | C |
操作系统 | 跨平台 |
系統平台 | 跨平台 |
类型 | 部件工具箱 |
许可协议 | BSD-风格[3] |
网站 | www |
Tk是一開放原始碼的图形用户界面开发工具,提供許多常用的圖形介面元件(像是選單、按鈕之類),具有跨平台、輕量化等特色。
Tk最初發展於1991年,是以Tcl腳本語言撰寫的擴充套件,目前另有Perl、Python、Ruby、Common Lisp等多種版本,並可在Linux、Unix、Apple Macintoch、Windows等平臺上運行。
从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提供了包含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]。
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
的基本部件使用图形管理器管理[20]。
place
– 定位部件至给定的绝对位置grid
– 将部件按网格排列pack
– 将部件打包
|