HyperWorks 軟件平臺包括多個子模塊( HyperMesh、 HyperView 以及 HyperGraph 等),其統一采用 Tcl/Tk 作為二次開發語言。Tcl/Tk 是加州大學伯克利分校的 John Ousterhout 開發的命令語言,其中的 Tk 是一個通過編寫 Tcl 代碼來創建圖形用戶界面的工具集。 Tk 擴展了基本的內建 Tcl 命令,用一些新的命令來創建稱為組件的用戶界面元素,并用幾何管理器將這些元素整合成美觀的版面,繼而將界面與應用程序關聯起來。 Tk 中的基本元素包括:
窗口
窗口系統提供了通過鍵盤和鼠標來操作顯示內容的功能。每個屏幕上都顯示了一組分層的矩形窗口,最底層的窗口稱為根窗口,它可以含有任意多的子窗口,被稱為頂層窗口,頂層窗口的下層窗口稱為組件或者內部窗口,它們能夠被嵌入到任意層級,組件被用于單獨的控件,如按鈕、滾動條或者文本項,還可以組合其他的組件。當用戶敲擊鍵盤、移動光標或單擊鼠標時,用戶動作的事件將被發送到應用程序,每一個事件都包含了剛才的行為
HyperWorks 軟件平臺包括多個子模塊( HyperMesh、 HyperView 以及 HyperGraph 等),其統一采用 Tcl/Tk 作為二次開發語言。Tcl/Tk 是加州大學伯克利分校的 John Ousterhout 開發的命令語言,其中的 Tk 是一個通過編寫 Tcl 代碼來創建圖形用戶界面的工具集。 Tk 擴展了基本的內建 Tcl 命令,用一些新的命令來創建稱為組件的用戶界面元素,并用幾何管理器將這些元素整合成美觀的版面,繼而將界面與應用程序關聯起來。 Tk 中的基本元素包括:
窗口
窗口系統提供了通過鍵盤和鼠標來操作顯示內容的功能。每個屏幕上都顯示了一組分層的矩形窗口,最底層的窗口稱為根窗口,它可以含有任意多的子窗口,被稱為頂層窗口,頂層窗口的下層窗口稱為組件或者內部窗口,它們能夠被嵌入到任意層級,組件被用于單獨的控件,如按鈕、滾動條或者文本項,還可以組合其他的組件。當用戶敲擊鍵盤、移動光標或單擊鼠標時,用戶動作的事件將被發送到應用程序,每一個事件都包含了剛才的行為,還提供了事件發生的窗口、時間、光標位置和鼠標按鍵的狀態等有關事件的信息。
組件
Tk 使用底層繪圖 API 來實現控件集合, 這些控件常稱為組件。每個組件都是一個類的成員,根據所在的類決定其外觀和行為。每個組件都和一個 Tcl 腳本關聯在一起,當用戶對該組件進行某一操作時,便會調用該組件關聯的腳本,以此來實現不同的操作。每個組件和窗口都有一個文本名字,如“ .a.b.c”。組件的名稱和文件的路徑名稱相似,只不過使用的分隔符不是“ /”或者“ \”,而是“ .”。名為“ .”的組件處在層級的最上層,被稱為主窗口。名為“ .a.b.c”的組件是指名為“ .a.b”的組件的子組件 c,而“ .a.b”又是“ .a”的一個子組件,后者是主窗口的一個子窗口。
幾何管理器
組件并不決定自己的尺寸和在屏幕上的位置,這些功能由幾何管理器來實現。每個幾何管理器實現一個特定的版面,它會在給出要管理的組件和控制信息后,賦予組件相應的尺寸和位置。例如,可以讓幾何管理器在一個垂直列上排列組件,管理器就會安排組件的位置,使各組件相鄰而不重疊。
Tk 的主要幾何管理器是網格管理器、打包器和定位器。網格管理器將組件按行和列排列管理;打包器則是按順序將一系列組件放置在空白的邊緣;定位器采用固定位置或相對位置處理和安排組件。
腳本和事件
一個 Tk 應用程序被兩種類型的 Tcl 腳本控制:初始化腳本和事件處理器。當應用程序開始運行時,初始化腳本被執行。它創建應用程序的用戶界面,加載應用程序的數據結構并進行應用程序所需要的其他初始化操作。在初始化完成后,程序進入了事件循環,等待與用戶交互。不論一個事件在什么時候發生,例如用戶調用了一個菜單或移動了鼠標,一個 Tcl 腳本都會被調用來處理這個事件。這些腳本被稱為事件處理器,應用程序為用戶界面提供了很多功能,由用戶決定下一步要做什么,而事件處理器則用于響應用戶的指令。