我的 Tkinter GUI 中有文本区域。我想实现一个撤消功能,它将删除最后一行。为此,我需要获取最后一行的行和列。
如何获取最后一行的行数和位置?获得位置后,如何删除该行?
我在谷歌上搜索过这个,但没有得到任何有价值的链接。
最后一行的索引是"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")
就其价值而言,这些都已记录在案并且很容易找到。在我写这篇文章时,当我在谷歌上搜索“tkinter text widget”时,第一个结果指向一个记录文本小部件索引表达式的页面:http://effbot.org/tkinterbook/text.htm。查找名为“表达式”的部分。
要删除一行文本,您需要调用delete
方法以及要删除的文本的开始和结束索引。要删除最后一行,请使用以下命令:
textwidget.delete("end-1c linestart", "end")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)