一個基于Tcl的應(yīng)用程序的基本組成部分被稱為窗口小部件。成分有時也被稱為窗口,由于在Tk的“window”和“widget”經(jīng)常互換使用。 Tk是一個軟件包,提供了一組圖形組件的豐富來使用Tcl創(chuàng)建圖形的應(yīng)用程序。
TK提供了一系列的部件,從基本的GUI控件如按鈕和菜單數(shù)據(jù)顯示窗口小部件。窗口小部件是非??膳渲玫模驗樗鼈兊哪J(rèn)配置使它們易于使用。
Tk程序遵循一個部件widget的層次結(jié)構(gòu),其中任何數(shù)量的部件可以被放置在另一小窗口,并在另一小窗口的部件。在一個Tk的程序所述主窗口部件被稱為根部件,并且可以通過使TkRoot類的新實例被創(chuàng)建。
創(chuàng)建插件widget語法下面給出。
type variableName arguments options
這里的類型指的是按鈕,標(biāo)記等小部件的類型。參數(shù)是可選的,并且基于每個widget語法所必需的。選項范圍大小到每個組件的格式。
Widget使用類似命名的包結(jié)構(gòu)。Tk的根窗口被命名為用句點(.)和在窗口中的元素,例如按鈕命名.myButton1。變量名稱應(yīng)該以小寫字母,數(shù)字或標(biāo)點符號(除了一個時期)。第一個字符后,其它字符可以是大寫或小寫字母,數(shù)字或標(biāo)點符號(除了時間)。建議使用小寫字母開始的標(biāo)簽。
顏色可以使用名稱,如red, green等聲明。它也可以用十六進(jìn)制表示與#。十六進(jìn)制數(shù)字的數(shù)目可以是3,6,9或12。
默認(rèn)單位是像素,它是用來當(dāng)指定大小。其他尺寸i表示英寸,m表示毫米,c表示厘米,以及p表示點。
有提供給所有的部件,以便許多共同的選項和它們被列于下表中。
| SN | 語法 | 描述 |
|---|---|---|
| 1 | -background color | 用于設(shè)置小部件背景色。 |
| 2 | -borderwidth width | 用于繪制在3D效果邊界。 |
| 3 | -font fontDescriptor | 用來設(shè)置部件字體。 |
| 4 | -foreground color | 用于設(shè)置部件的前景色。 |
| 5 | -height number | 用于設(shè)置部件高度。 |
| 6 | -highlightbackground color | 用于設(shè)置顏色矩形周圍畫一個小部件時,窗口小部件不具有輸入焦點。 |
| 7 | -highlightcolor color | 用于設(shè)置顏色矩形周圍畫一個小部件時,窗口小部件有輸入焦點。 |
| 8 | -padx number | 設(shè)置padx的部件。 |
| 9 | -pady number | 設(shè)置pady的部件。 |
| 10 | -relief condition | 設(shè)置這個小程序的3D浮雕。條件得到提升,凹陷,扁平,起壟,固體或凹槽。 |
| 11 | -text text | 設(shè)置小部件的文本。 |
| 12 | -textvariable varName | 變量與小部件關(guān)聯(lián)。當(dāng)小部件的文本改變,該變量設(shè)置控件的文本。 |
| 13 | -width number | 設(shè)置widget的寬度。 |
一個簡單的例子選擇如下所示。
#!/usr/bin/wish grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3] -padx 100 -pady 100
當(dāng)我們運(yùn)行上面的程序,會得到下面的輸出。
可用窗口小部件的列表如下分類。
| SN | Widget | 描述 |
|---|---|---|
| 1 | Label | 窗口小部件,用于顯示文本的單行。 |
| 2 | Button | 小部件是可以點擊的,并觸發(fā)一個動作。 |
| 3 | Entry | 窗口小部件用于接受文字輸入的一行。 |
| 4 | Message | 小部件顯示多行文本。 |
| 5 | Text | 小部件顯示和可選編輯多行文本。 |
| 6 | Toplevel | 由窗口管理器提供的所有邊框和裝飾。 |
| SN | Widget | 描述 |
|---|---|---|
| 1 | Frame | 容器部件持有其他部件。 |
| 2 | Place | 窗口小部件持有特定的地方的其他部件,其起源坐標(biāo)和精確的尺寸。 |
| 3 | Pack | 簡單的小工具,以將它們放置在父控件之前組織塊部件。 |
| 4 | Grid | 窗口小部件嵌套小部件包裝在不同的方向。 |
| SN | Widget | 描述 |
|---|---|---|
| 1 | Radiobutton | 窗口小部件具有一組開/關(guān)按鈕和標(biāo)簽,其中一個可被選擇。 |
| 2 | Checkbutton | 窗口小部件具有一組開/關(guān)按鈕和標(biāo)簽,其中許多可被選擇. |
| 3 | Menu | 窗口小部件為菜單項充當(dāng)支架。 |
| 4 | Listbox | 窗口小部件,顯示一個或多個單元格,其中的列表可以被選擇。 |
| SN | Widget | 描述 |
|---|---|---|
| 1 | Dialog | 部件顯示對話框。 |
| 2 | Spinbox | 窗口小部件允許用戶選擇數(shù)字。 |
| 3 | Combobox | 窗口小部件,它結(jié)合了可供利用的選擇列表中的一個條目。 |
| 4 | Notebook | 標(biāo)簽窗口小部件,有助于幾個頁面之一之間切換,使用索引選項卡。 |
| 5 | Progressbar | 窗口小部件提供視覺反饋的一個長期操作,如文件上傳進(jìn)度。 |
| 6 | Treeview | 窗口小部件用來顯示,并允許通過項目的層次結(jié)構(gòu)瀏覽更多的樹的形式。 |
| 7 | Scrollbar | 滾動部件沒有文字或canvas小部件。 |
| 8 | Scale | 縮放小部件選擇通過滑塊的數(shù)值。 |
| SN | Widget | 描述 |
|---|---|---|
| 1 | Canvas | 繪制部件顯示圖形和圖像.. |
我們將介紹有關(guān)各窗口小部件在下幾個章節(jié)。