#

組合方塊(combobox)是同時具備單行輸入方塊及清單方塊兩種特性的視窗元件,使用者可以在組合方塊裡直接輸入文字,或是由下拉清單中選取預設的項目。這一個章節介紹ttk組合方塊的使用方法。

30.1 建立組合方塊

如下是組合方塊的外觀,有一個文字輸入區,還有一個下拉清單方塊。使用者可以在文字輸入區輸入文字,也可以在下拉清單方塊中挑選預設提供的項目。

圖 30-1


ttk可以使用combobox命令建立組合方塊,如下是一個簡單的範例:



請看到第5行,-values後面必需緊接著一個清單式的資料,這個清單中的項目會被顯示在組合方塊的下拉清單方塊中。-textvariable的使用方法和ttk::entry一樣,它後面可以指定一個變數名稱,用來反映目前組合方塊輸入區的文字內容。

執行結果如下:

圖 30-2


使用者可以直接輸入想吃的水果,或是由下拉清單中挑選預設的項目。這些預設項目可以讓使用者少打一些字。

30.2 存取文字輸入區

文字輸入區的內容除了可以使用-textvariable指定的變數存取之外,也可以用下列的方法:



combobox的set命令可以用來設定文字輸入區的內容。上面的例子會把文字輸入區的內容設定為「西瓜」。而下方的程式,則會列印文字輸入區的內容。



30.3 使用範例

下面是一個常見的應用技巧,這個程式會在下拉清單中記住輸入區曾經使用過的內容。



這個程式把組合方塊綁定了Return事件,就是使用者按下鍵盤的Enter時,後方大括號裡的程式就會被執行。當事件觸發的時候,程式取出下拉清單中所有的項目,然後查看目前輸入區的內容,是否出現在這些項目中,如果沒有的話,就把目前輸入區的內容插入下拉清單的開頭,如此一來程式就會在下拉清單中自動記錄使用者曾經輸入的內容。

下面是另一個組合方塊的例子,它示範動態建立下拉清單項目的方法:



這個程式的重點在第3行的-postcommand選項,它就類似ttk::button的-command選項,指定給它的程式碼會在下拉清單顯示時被執行,也可以說是使用者在按下組合方塊右方的向下按鈕時就會執行。在這個例子裡,我把目前工作路徑下的檔案及目錄都掃進下拉清單,所以在不同的工作路徑下執行這個程式,下拉清單中的項目就會有不同的內容。

圖 30-3


上圖顯示了我的家目錄下所有的內容,因為我在家目錄下執行了這個程式。

30.4 常用選項

以下是其它常用的選項,有興趣的朋友請自己試看看吧!!

-height 指定組合方塊的高度
-justify 指定文字對齊的方式,它的值可以是left、right或center。
-width 指定組合方塊的寬度。

圓鈕方塊也提供了cget及configure等標準的視窗元件命令,它們的用法請參考這一章的說明。

Theme Design by devolux.org. Converted by Wordpress To Blogger for WP Blogger Themes. Sponsored by iBlogtoBlog
This template is brought to you by : allblogtools.com | Blogger Templates