gpt4 book ai didi

python - 如何在 Tkinter 中获取文本结束位置的行和列?

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:50 24 4
gpt4 key购买 nike

我的 Tkinter GUI 中有文本区域。我想实现一个撤消功能,它将删除最后一行。为此,我需要获取最后一行的行和列。

如何获取最后一行的行号和位置?一旦获得位置,如何删除该行?

我在谷歌上搜索过这个,但没有找到任何有值(value)的链接。

最佳答案

最后一行的索引是 "end" 或 tkinter 常量 END。 tkinter 总是在末尾插入一个不可见的换行符,所以这实际上表示紧接在用户输入的最后一个字符之后的索引。

您可以使用文本小部件的index 方法获取行号和列号。因此,例如,要获取最后一个字符的行/列:

pos = textwidget.index("end")

您可以向索引添加修饰符,以获得相对于另一个位置的位置。例如,要获取行首的索引,您可以附加 linestart(例如:“3.5 linestart”将为您提供 3.0)。您还可以通过附加“-n chars”或“-nc”来减去字符(例如:“3.5-1c”将为您提供 3.4)。

这些修饰符可以组合。因此,如果想要从末尾找到最后一行文本的开头(实际上是在 tkinter 添加的额外换行符之后),请备份一个字符以到达该行的末尾,然后使用“linestart”开始:

pos = textwidget.index("end-1c linestart")

就其值(value)而言,这一切都已记录在案并且很容易找到。在我写这篇文章的时候,当我在谷歌上搜索“tkinter 文本小部件”时,第一个结果指向一个记录文本小部件索引表达式的页面:http://effbot.org/tkinterbook/text.htm .查找名为“表达式”的部分。

要删除一行文本,您需要调用delete 方法,并指定要删除的文本的开始和结束索引。要删除最后一行,请使用:

textwidget.delete("end-1c linestart", "end")

关于python - 如何在 Tkinter 中获取文本结束位置的行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com