如何不在 tkinter 文本小部件中选择空白文本?

问题描述

有没有办法在 tkinter 中不选择空白文本。

代码如下:

from tkinter import *

root = Tk()

text = Text(root,width = 65,height = 20,font = "consolas 14")
text.pack()

text.insert('1.0',"This is the first line.\n\nThis is the third line.\n\nThis is the fifth line.")

mainloop()

这里当我选择几行时,每行末尾的空白文本也会被选中。

enter image description here

我希望不应该选择空白文本。

enter image description here

有没有办法在 tkinter 中实现这一点?

如果有人能帮助我就好了。

解决方法

这并不是真正被选中的“区域”:Text 对象包含(和 选择)字符,而不是区域。重要的是要区分 被选中的字符,以及它们在屏幕上的表现。

每一行的最后一个字符是换行符'\n'(实际上就是 定义一个)。当您将鼠标移出点 '.'(向右)时, 您在选择中包含换行符。

现在,文本小部件通常会将前景色和背景色反转为 表示选择了一个字符,但没有显式绘制换行符 作为一个角色,它实际上是不可见的(除了文本 跳到下一行)。这些困扰你的空白区域只是 文本小部件告诉您已选择换行符的方式, 而且我认为您无法更改此显示行为。

,

有没有办法在 tkinter 中不选择空白文本。

不,这就是 tkinter 视觉上表示换行符选择的方式。

唯一的方法是将 tkinter 的默认选择机制替换为不选择换行符,但是当您获得选择时,您将不会获得换行符。我认为用户会对此感到非常惊讶。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...