tkinter的Entry設置為不可編輯狀態


首先我們知道,tkinter中有許許多多的控件,其中使用頻繁的控件之一就是Entry(輸入框),那么怎么設置它為不可編輯狀態呢?

state選項

一般我們在寫Entry的時候只傳入了一個master參數,也就是這樣,

from tkinter import *

root = Tk()
root.geometry('200x200')

lf = LabelFrame(root, text='默認狀態')
lf.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.5)
ent1 = Entry(lf)
ent1.place(relx=0.1, rely=0.25, relwidth=0.8)

root.mainloop()

效果是這樣的:

實際上Entry有一個參數叫state ,它的值有normal, disable, readonly

其實看到這里我們就能大概知道各個狀態了。

讓我們逐一試試:

normal:

from tkinter import *

root = Tk()
root.geometry('200x200')

lf = LabelFrame(root, text='normal狀態')
lf.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.5)
ent1 = Entry(lf, state='normal')
ent1.place(relx=0.1, rely=0.25, relwidth=0.8)

root.mainloop()

normal效果:

disable:

這里為了演示效果,我們在Entry中插入一個值,看是否能顯示

from tkinter import *

root = Tk()
root.geometry('200x200')

lf = LabelFrame(root, text='disable狀態')
lf.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.5)
ent1 = Entry(lf, state='disable')
ent1.insert(END, 'adada')
ent1.place(relx=0.1, rely=0.25, relwidth=0.8)

root.mainloop()

disable效果:

readonly:

為了演示效果,也是提前插入一個值。

但是readonly是可讀,如果我們在初始化時就設置可讀,那么之后Entry的內容就無法再編輯

from tkinter import *

root = Tk()
root.geometry('200x200')

lf = LabelFrame(root, text='readonly狀態,初始化設置')
lf.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.5)
ent1 = Entry(lf, state='readonly')
ent1.insert(END, 'adad')
ent1.place(relx=0.1, rely=0.25, relwidth=0.8)

root.mainloop()

readonly1效果:

我們可以在處理過Entry的文本后,利用config函數,再將其state設置為readonly,這樣更加常用。

from tkinter import *

root = Tk()
root.geometry('200x200')

lf = LabelFrame(root, text='readonly狀態,之后設置')
lf.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.5)
ent1 = Entry(lf)
ent1.insert(END, 'adad')
ent1.config(state='readonly')
ent1.place(relx=0.1, rely=0.25, relwidth=0.8)

root.mainloop()

readonly2效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM