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

Keeping the Insertion Cursor on a readonly Tkinter Entry

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


注:

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


我已经尝试在条目小部件中设置 'insertwidth' 和其他 插入光标 配置选项,以查看光标是否可能只是隐藏但它不起作用。

感谢任何帮助。

谢谢!

您可以阻止该小部件上的所有键盘事件,而不是将输入小部件设为只读,这样就无法在其中输入:

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

我建议您禁用 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()

您的条目将如下所示:

编辑:

由于问题已编辑,所以我建议您使用bind。与 @fhdrsdg 的答案不同,您可以更简单地使用绑定功能:

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

所以,你可以说你的完整代码是:

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

截图如下: