#

單行輸入方塊是視窗程式設計最常用的元件之一,它可以讓使用者在視窗程式上輸入一行文字,然後達成程式與使用者互動的目的。這一篇文章會簡單的介紹單行輸入方塊的使用方法。

19.1 建立單行輸入方塊

在ttk裡我們可以透過::ttk::entry命令來建立單行輸入方塊,例如下面的程式:



這個程式很簡單的建立了一個單行輸入方塊(entry),而且我們使用了-textvariable選項讓::txt變數來反映entry輸入區的內容。也就是說只要修改::txt變數,那麼entry輸入區的內容就會跟著改變,反過來說如果讀取::txt的值,那麼就可以取得entry輸入區裡的內容。這個例子我們以前看過好多次了,所以偷懶一下不貼圖了,請大家自己執行看結果。

□ 密碼輸入方塊

entry元件的-show選項可以用來設定密碼字元,也就是把entry元件變成輸入密碼的欄位。你可以把任何一個字元設定給-show選項,如此一來entry就會用你設定的字元來遮住真正的內容。



請注意到第2行,因為我把「#」指定給-show選項,所以原本應該顯示為「Hello」的,現在全都顯示成「#」符號了。請看下面的執行畫面:

圖 19-1


「Hello」都被「#」號遮住了。

19.2 視窗元件命令

entry除了提供cget及configure等標準的視窗元件命令之外,另外還提供了幾個命令,讓你不用透過-textvariable指定的變數,也可以設定或取出輸入區的內容。現在讓我們先來看看下面的例子:



請先看到程式的第1行,這次沒有指定-textvariable,所以現在沒有辦法透過某個變數來改變輸入區的內容了。然後請看到第2行,我改用了insert命令來把「Hello」字串插入輸入區最尾端end的位置,程式執行起來像這樣:

圖 19-2


程式第2行的end是你要插入的位置,後面的「Hello」是要插入的內容。對於插入的位置你也可以用零以上的數值來表示,例如:



在第3行我把一個笑臉插入輸入區0的位置(即最前面),所以這次程式執行起來像這樣:

圖 19-3


entry的insert命令除了可以用end及零以上的數值來表示插入位置之外,也可以用下面的方法來把字串插入目前滑鼠停駐點的位置:



□ 取得輸入區的內容

在上面的例子裡,我們沒有指定-textvariable選項,那該怎麼取得輸入區裡的內容呢? 簡案是使用entry的get命令:



這個程式的重點在第4行,請看到-command裡的內容我用了entry的get命令來取出輸入區的內容,然後把它輸出。

□ 反白輸入區裡的內容

entry也提供了命令來反白輸入區裡的文字內容,例如:



請注意到第3行,entry的selection range命令可以用來反白輸入區裡的文字內容,以這個例子來說,我從索引值1選到4,總共選了3個字元,不包含索引4的字元。所以它執行的畫面如下,有3個字元被反白了。

圖 19-4


如果要反白全部的內容,則可以這樣寫:



當然也有清除反白的命令:

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