将插入光标保持在只读的 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()
截图如下:
我在我的 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()
截图如下: