问题描述
有没有办法在 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()
这里当我选择几行时,每行末尾的空白文本也会被选中。
我希望不应该选择空白文本。
有没有办法在 tkinter 中实现这一点?
如果有人能帮助我就好了。
解决方法
这并不是真正被选中的“区域”:Text 对象包含(和 选择)字符,而不是区域。重要的是要区分 被选中的字符,以及它们在屏幕上的表现。
每一行的最后一个字符是换行符'\n'
(实际上就是
定义一个行)。当您将鼠标移出点 '.'
(向右)时,
您在选择中包含换行符。
现在,文本小部件通常会将前景色和背景色反转为 表示选择了一个字符,但没有显式绘制换行符 作为一个角色,它实际上是不可见的(除了文本 跳到下一行)。这些困扰你的空白区域只是 文本小部件告诉您已选择换行符的方式, 而且我认为您无法更改此显示行为。
,有没有办法在 tkinter 中不选择空白文本。
不,这就是 tkinter 视觉上表示换行符选择的方式。
唯一的方法是将 tkinter 的默认选择机制替换为不选择换行符,但是当您获得选择时,您将不会获得换行符。我认为用户会对此感到非常惊讶。