python - 在 Tkinter 条目中隐藏文本光标
问题描述
所以我正在处理 Tkinter 条目,我想知道是否有办法隐藏条目中的文本光标。这只是我创建的一个示例条目(现在看起来很可怕):
此条目中的文本光标非常清晰可见,即使我单击屏幕上的其他位置,它也会继续闪烁。有没有办法在 Tkinter 中手动隐藏光标?我无法找到有关该主题的任何文章,所以这甚至可能吗?
以下是在 tkinter 中创建条目的代码:
from tkinter import *
top = Tk()
E1 = Entry(top, bd=5)
E1.pack(side=RIGHT)
E1.focus_set()
top.mainloop()
所以这会引发同样的问题,我如何隐藏文本光标?这段代码也不会输出我给出的图像,因为它是用 goopylib 制作的,goopylib 是我在 Tkinter 之上制作的图形框架。因此,对于整个代码,您可以看到https://github.com/BhavyeMathur/goopylib/blob/master/goopylib/objects/Entry.py这是我使用的程序:
from goopylib.imports import *
window = GraphWin("Test Window", width=110, height=110)
Entry(Point(55, 55), text_width=10).draw(window)
while True:
update(24)
要运行此代码,您需要安装 goopylib,您可以使用:
pip install goopylib
解决方案
当小部件具有焦点时,光标可见,这对于用户在小部件中键入时很重要。
如果您不想要光标,记录的方法是将状态设置为“只读”。从规范文档中:
如果条目是只读的,那么即使输入焦点在小部件中,也不能使用小部件命令更改值并且不会显示插入光标;小部件的内容仍可能被选中。
问题也可能只是当您单击某处时,“其他地方”并非旨在获取键盘焦点。如果您调整绑定以使您单击的内容获得焦点,则焦点将从条目小部件中移除,并且光标将被隐藏,直到焦点恢复。
例如,如果您在画布上创建项目,则可以创建绑定以在单击时将焦点移至画布:
the_canvas.bind("<1>", lambda event: event.widget.focus_set())
当您单击画布时,焦点将移至画布并远离条目,因此条目将不再显示光标。
推荐阅读
- ios - iOS 上的 Flutter、flutter_sound RecordingPermissionException
- scala - Scala,ZIO - 如何从任务返回值?
- terraform - 在 Terraform 中将 JSON 文件加载到自定义子模块中的排序问题
- python - 从现有列创建新列并将值从小到大排序
- eclipse - 带有 Jrebel 的 Eclipse:调试失败
- pdf - Imagemagick 将 .pdf 转换为灰度 .png 会产生黑色图像
- python - 如何在数据框的所有列上使用 .apply(lambda x: function)
- azure-cosmosdb - 如何遍历数组并在 Azure Cosmos DB -Core SQL API 中使用 SQL 为所有客户查找所有产品的总和?
- eclipse - 使用tomcat 9服务器在单独的eclipse工作区中运行相同的应用程序会导致共享类加载器?
- java - 在 Eclipse 中使用 JAVA 进行 TestNG 测试错误