用Python的tkinter庫做GUI程序,Entry控件被我們用來獲取用戶的輸入,不過很多時候,我們希望GUI界面上的Entry控件能有默認值,用戶可以修改默認值,也可以不修改。默認值提高了軟件的易用性。
直接看代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Label(root, text='網址:')
lb.grid(row=0,column=0)
addr = tk.StringVar(value='https://www.pynote.net')
en = tk.Entry(root, textvariable=addr)
en.grid(row=0,column=1)
root.mainloop()
定義addr為tk.StringVar變量,在定義的時候,設置其value為某一個值,這個值就是默認值。在創建Entry控件的時候,使用textvariable參數指向addr。以上程序運行的效果如下:

還有一種設置默認值的寫法,使用tk.StringVar對象的set函數,代碼如下:
import tkinter as tk
root = tk.Tk()
lb = tk.Label(root, text='網址:')
lb.grid(row=0,column=0)
addr = tk.StringVar()
addr.set('https://www.maixj.net')
en = tk.Entry(root, textvariable=addr)
en.grid(row=0,column=1)
root.mainloop()
set函數設置值,get函數獲取值。
以上示例都是使用tk.StringVar對象,其它類型的tk對象同理。給Entry控件設置默認值,就是這么簡單!
現在給出第3中實現Entry控件默認值的方法,使用Entry控件自身的insert函數,代碼如下:
import tkinter as tk
root = tk.Tk()
lb = tk.Label(root, text='網址:')
lb.grid(row=0,column=0)
addr = tk.StringVar()
en = tk.Entry(root, textvariable=addr)
en.insert(0, 'www.pynote.net')
en.grid(row=0,column=1)
root.mainloop()
以上代碼,addr沒有設置初始值,不過entry對象自己使用了insert函數,顧名思義,就是在Entry控件的可輸入控件輸入值。insert函數的第1個參數是0,表示從最開始的位置插入,如果是INSERT,表示從光標所在位置插入,如果是END,表示在末尾插入。
本文用3種方式,實現了tkinter的Entry設置默認值的效果,請同學們各取所需。
-- EOF --