Tk

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Tk
File:Tcl-Tk universal scripting.svg
Windows 10上運行的 Tk 8.6.6 截圖
Windows 10上運行的 Tk 8.6.6 截圖
原作者約翰·奧斯特豪特英語John Ousterhout
開發者Tcl Core Team[1]
首次發布1991年,​35年前​(1991
當前版本8.6.11(2020年12月31日,​5年前​(2020-12-31
預覽版本9.0a1(2019年11月26日,​6年前​(2019-11-26
源代碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
編程語言C
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    操作系統跨平台
    平台跨平台
    類型部件工具箱
    許可協議BSD-風格[2]
    網站www.tcl.tk

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

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

    從Tcl/Tk 8開始,軟件搭建的圖形界面看起來將「與本地系統一致」[3]。8.5版引入了一個新的主題引擎,它在字體渲染方面也有改進。該引擎最初叫Tk Tile[4],但現在通常被稱為"themed Tk"[5]。8.6版的更新則支持了PNG格式,以及傾斜文字[6]

    架構[編輯]

    在Tk中,運用Tcl腳本編寫跨平台圖形用戶界面框架。使用Tcl Shell(Tclsh),以命令package require Tk調用Tk。在圖形操作系統下,Wish英語Wish_(Unix_shell)提供了包含Tclsh和Tk的圖形窗口環境[7]

    Tk有以下特性:

    • 平台獨立:與Tcl一樣,Tk也是解釋型的。各種平台下的Tcl實現是統一的,因此Tk程序可無需修改地移植至各種平台[8]
    • 可定製:Tcl中幾乎所有的特性都是可以修改的,可通過初始化選項或運行時的命令修改[9]
    • 可保存:很多選項出存在數據庫中,例如界面的顏色設定。這些選項能保存下來,在再次載入程序時讀取[10]

    語言綁定[編輯]

    通過語言綁定,以Tcl實現的Tk可在其他編程語言中調用。已有多種語言支持Tk,完整的列表見於Tk的網站[11]。 例如Ada中的TASH模塊[12] Haskell中的HTk[13],Perl,Python中的Tkinter模塊,Ruby,REXX, 以及Common Lisp

    Perl中調用Tk用多種方法: Tcl::Tk模塊以及Tkx模塊[14]均適用Tcl作為橋梁;而Perl/Tk[15]直接使用Perl實現Tk。Python的Tkinter模塊使用與Tcl的語言綁定實現Tk[16]

    特性[編輯]

    Tk提供了多種部件[17]。基本部件整合在toplevel部件里,作為可移動的浮動窗口,通常由操作系統管理[18]

    基本特性[編輯]

    • 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的基本部件使用圖形管理器管理[19]

    • place – 定位部件至給定的絕對位置
    • grid – 將部件按網格排列
    • pack – 將部件打包

    參考資料[編輯]

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

    外部連結[編輯]