Next: 基本的 Tk 對應 Tkinter | Previous: Tkinter 類別概述 | 內容
Tcl/Tk快速直觀
這一節會含括進來是因為很不幸的大部分的Tkinter文件都會以Tk的線上文件及John Ousterhout的書中的格式來呈現,為了使用這些參考資料,有時你必須知道如何閱讀Tk的小單元及確認Tk命令的各種部份。(詳見 基本的 Tk 對應 Tkinter 這篇底下所列的tkinter對等的基礎。)
Tk 命令稿是Tcl 程式,向所有的 Tcl 程式一樣,Tk 命令稿只是由空格分隔的符號列表,Tk 元件只是它的類別,選項 幫助設定,而 actions 可以讓它作有意義的事。
要在Tk中產生一個元件,命令的格式像這樣:
類別命令 新的路徑名稱 選項
- 類別命令
- 指示要產生哪一類的元件(按鈕、標籤、選單…)
- 新的路徑名稱
- 是這個元件新的名稱,在Tk裡的名稱都是獨一的,為了幫助堅持這規定,Tk中的元件用路徑名稱來命名,就像檔案系統的檔案一樣,頂層的元件,root被稱作 “.” (句號) 其子元件用更多的句號來區隔,舉個例:
.myApp.controlPanel.okButton
就是一個元件的名稱。 - 選項
- 配置元件的外觀以及在某些情形下配置他的行為,選項的格式可以是一系列的旗標及值,旗標會用 `-‘來進行就像unix shell command 旗標而當值有一個字以上時則用引號來放入。
舉例:
button .fred -fg red -text “hi there”
^ ^ ______________/
| | |
類別命令 新元件 選項(-opt val -opt val …)
元件一旦建立,擁有路徑名稱的元件會成為一個新的命令,新的元件命令是程式設計師用來處理新的元件來執行某些的動作,在C語言中,你可以表示成這樣someAction(fred, someOptions),在C++裡你可以這樣表示 fred.someAction(someOptions),而在Tk下可以這樣表示:
.fred someAction someOptions
注意物件名稱 .fred會用句號開始。
正如你所想的,someAction 合法的值要看元件的類別:.fred disable
在fred是個按鈕時是可以運作的(fred 會變成灰色),但如果fred是標籤則不能運作(停用標籤在Tk中不支援)。
someOptions 的值也是依賴動作,有些動作像 disable
, 不需要參數,其他像文字輸入盒的 delete
命令會需要參數來指定多少的文字要刪除, (不幸的是,John Ousterhout 交互使用這兩個術語 “widget command” 及”action”(p 154),在實務中不會造成混淆,但對於初學者則有可能亂七八糟的。)
3 則留言