将插入光标保留在只读的Tkinter条目上

时间:2018-08-15 09:19:38

标签: python python-3.x tkinter tkinter-entry

我正在python代码中使用tkinter模块为我正在创建的简单应用程序创建GUI。我想知道即使我的输入小部件上的状态设置为“ 只读”,是否也可以保持插入光标可见。我希望用户仍然看到插入光标在文本中的位置,但不能直接使用键盘编辑文本。


注意:

当我说 Insertion Cursor 时,我并不是说普通的鼠标光标/指针,而是指闪烁的条,它会显示在您可以编辑的文本上。我不确定它的专有名称是什么...下面是我的意思的示例(条目中的黑条)

Example of insertion cursor


我尝试在Entry小部件中设置'insertwidth'和其他 insertion游标配置选项,以查看游标是否只是被隐藏了而无法使用。

感谢您的帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将条目小部件上的所有键盘事件都阻止,而不是将条目小部件设置为只读,从而无法输入:

entry.bind("<Key>", lambda e: "break")

答案 1 :(得分:1)

我建议您禁用Entry并更改其disabledbackground。示例:

entry.config(disabledbackground ="white",state="disabled")

因此,假设您使用的是python 3,则您的代码可能类似于:

from tkinter import *
root = Tk()
ent = Entry(root)
ent.config(disabledbackground ="white",state="disabled")
ent.place(x=0,y=0)
mainloop()

您的输入将如下所示:

enter image description here

编辑:

由于问题已被编辑,所以我建议您使用bind。与@fhdrsdg的答案不同,您可以以更简单的方式使用bind函数:

ent.bind("<Key>", "pass")

因此,您可以说您的完整代码是:

from tkinter import *
root = Tk()
ent = Entry(root)
ent.bind("<Key>", "pass")
ent.pack()
mainloop()

这是屏幕截图:

enter image description here