Label標籤元件僅能在視窗上顯示資料,卻無法做輸入資料或修改資料的動作。若使用者需要對視窗上的資料做輸入或修改的動作,此時就必須使用Entry文字方塊元件來完成。所以「文字方塊」元件是允許輸入、修改和顯示資料,也就是說它具有讀寫功能,而標籤元件只具有唯讀功能。建立文字方塊的語法如下:

物件變數 = tkinter.Entry(容器物件, [參數1=值1, 參數2=值2, …, 參數n=值n])

Entry可使用Label提供的參數,下表是Entry所提供常用的參數說明:

參數說明
state文字方塊狀態,預設值為 normal,表示文字方塊為輸入狀態。
若設為 disabled 表示文字方塊為不啟用狀態。
若設為 readonly 表示文字方塊為唯讀狀態。
textvariable文字方塊代表的物件,用來存取文字方塊中的資料。使用時必須先透過 tkinter 模組的 IntVar()、DoubleVar()、StringVar()、BooleanVar()等方法,定義文字方塊代表物件要使用的資料型別。
①num=tkinter.IntVar():定義 num 為 tkinter 模組的整數物件。
②score=tkinter.DoubleVar():定義 score 為 tkinter 模組的浮點數物件。
③name=tkinter.StringVar():定義 name 為 tkinter 模組的字串物件。
④isMarry=tkinter.BooleanVar():定義 isMarry 為 tkinter 模組的布林物件。
在文字方塊指定對應的物件撰寫方式如下:
#指定 tkinter 模組的字串物件 name,是 txtName 文字欄的變數
name=tk.StringVar()
txtName = tkinter.Entry(win, textvariable=name)
# 指定 tkinter 模組的整數物件 score,是 txtScore 文字欄的變數
score = tk.IntVar()
txtScore = tkinter.Entry(win, textvariable=score)
當文字方塊對應的物件指定完成,接著可以使用 get()方法來取得資料,或使用 set()方法來設定資料。寫法如下:
vName = name.get() # 取得 name 對應文字方塊的資料並放入 vName
score.set(100)         #設定 score 對應文字方塊的資料為 100

[簡例] (檔名:Entry01.py)
建立判斷成績等級的視窗程式,視窗中使用文字方塊讓使用者輸入姓名和分
數,按下[確定]鈕後,在標籤上顯示該位使用者姓名與成績等級,成績等級分類
如下:

  1. 90~100 : A
  2. 80~89 : B
  3. 70~79 : C
  4. 65~69 : D
  5. 0~64 : F

[結果]


相關主題與延伸閱讀