0

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

这是代码:

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 中实现这一点?

如果有人可以帮助我,那就太好了。

4

2 回答 2

2

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

每行中的最后一个字符是换行符'\n'(这实际上是定义line的内容)。当您将鼠标移到点之外'.'(向右)时,您的选择中包含了换行符。

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

于 2021-03-13T10:21:33.267 回答
0

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

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

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

于 2021-03-13T17:15:52.270 回答