tkinter的Entry设置为不可编辑状态

Posted NiceThing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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效果:

以上是关于tkinter的Entry设置为不可编辑状态的主要内容,如果未能解决你的问题,请参考以下文章

Python3 Tkinter基础 Entry state='readonly' 不可写入的输入框,但是可以选中与拷贝

python tkinter 组件功能实例总结(代码+效果图)(Radiobutton | Button | Entry | Menu | Text)

Python tkinter Entry 小部件状态通过单选按钮切换

在基于 python/tkinter 的文本编辑器中实现文本自动完成

tkinter Entry 小部件中的可见文本变量

如何使用 tkinter 中的按钮设置“Entry”小部件的文本/值/内容