tkinter的Entry設定預設值的效果
阿新 • • 發佈:2021-07-02
用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 --