1. 程式人生 > 其它 >tkinter的Entry設定預設值的效果

tkinter的Entry設定預設值的效果

用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。以上程式執行的效果如下:

Entry控制元件的預設值

還有一種設定預設值的寫法,使用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 --