Tkinter文字輸入控制元件

Tkinter文字輸入控制元件-Entry控制元件允許使用者輸入只有一種字型型別的單行文字。如果需要更多行,則應使用TkinterText控制元件。 Entry控制元件也可用於顯示單行文字。

Tkinter Entry文字輸入控制元件示例

Tkinter Entry_Basic.py
import tkinter as tk
from tkinter import ttk

def callbackFunc():
    resultString.set("{} - {}".format(landString.get(),
                                      cityString.get()))
     
app = tk.Tk() 
app.geometry('200x100')

labelLand = tk.Label(app,
                    text = "Country")
labelLand.grid(column=0, row=0, sticky=tk.W)
labelCity = tk.Label(app,
                    text = "City")
labelCity.grid(column=0, row=1, sticky=tk.W)

landString = tk.StringVar()
cityString = tk.StringVar()
entryLand = tk.Entry(app, width=20, textvariable=landString)
entryCity = tk.Entry(app, width=20, textvariable=cityString)

entryLand.grid(column=1, row=0, padx=10)
entryCity.grid(column=1, row=1, padx=10)


resultButton = tk.Button(app, text = 'Get Result',
                         command=callbackFunc)

resultButton.grid(column=0, row=2, pady=10, sticky=tk.W)

resultString=tk.StringVar()
resultLabel = tk.Label(app, textvariable=resultString)
resultLabel.grid(column=1, row=2, padx=10, sticky=tk.W)

app.mainloop()

此示例程式碼建立了一個GUI,使用者可以輸入國家和城市名稱,然後在單擊Get Result按鈕後顯示輸入的資訊。

Tkinter文字輸入控制元件例子

entryLand = tk.Entry(app, width=20, textvariable=landString)

它建立了一個TkinterEntry控制元件例項,其寬度為20個字元單位。它只能在輸入框中顯示20個字元,因此,如果文字行超過20個字元,則需要使用箭頭來移動文字來顯示剩餘的文字。

Entry控制元件的文字被分配給Tkinter字串變數landString。您可以使用landString.get()方法獲取文字,並使用landString.set()方法設定文字。如果使用set()方法,則輸入框中的文字會自動更新。

Note
除了StringVarget()方法外,你還可以用Entry控制元件物件的get()方法來得到Entry裡面輸入的文字。

Tkinter Entry文字輸入控制元件預設文字

我們有兩種方法來設定Entry預設文字,

set()方法來設定Tkinter Entry控制元件預設文字

如上例所示,您可以使用StringVarset()方法來設定TkinterEntry的預設文字。

例如,

landString.set("Netherlands")

它會將預設文字設定為Netherlands

insert()方法來設定Tkinter Entry控制元件預設文字

insert(index,string)方法在給定的index位置插入文字string。如果indexEND,它會將文字附加到Entry控制元件。

entryLand.insert(tk.END, "Netherlands")

它將預設文字設定為Netherlands

Note
如果Index比控制元件中已有的文字長度要長的話,那它就跟insert(END, string)的效果相同。