我的Tkinter GUI中有文本区域.我想实现一个删除最后一行的撤销功能.为此,我需要获取最后一行的行和列.
如何获得最后一行的线和位置?一旦我获得了这些职位,我该如何删除该职位?
我在谷歌搜索过这个,但我没有得到任何有价值的链接.
Bry*_*ley 10
最后一行的索引是"end"或tkinter常量END.tkinter总是在末尾插入一个不可见的换行符,所以这实际上代表了用户输入的最后一个字符之后的索引.
您可以使用index文本小部件的方法获取行号和列号.因此,例如,要获取最后一个字符的行/列:
pos = textwidget.index("end")
Run Code Online (Sandbox Code Playgroud)
您可以将修改器添加到索引,以获取相对于另一个位置的位置.例如,要获取可以追加的行开头的索引linestart(例如:"3.5 linestart"将为您提供3.0).你也可以通过附加"-n chars"或"-nc"来减去字符(例如:"3.5-1c"会给你3.4).
这些修饰符可以组合使用.因此,如果想要从最后找到最后一行文本的开头(实际上是在tkinter添加的额外换行符之后),请备份一个字符以到达行尾,然后使用"linestart"开始:
pos = textwidget.index("end-1c linestart")
Run Code Online (Sandbox Code Playgroud)
对于它的价值,这些都是有记录的,很容易找到.在我写这篇文章时,我搜索谷歌"tkinter文本小部件"时的第一个结果指向一个文档小部件索引表达式的页面:http://effbot.org/tkinterbook/text.htm.查找名为"expressions"的部分.
要删除一行文本,您需要使用要删除的文本delete的开始和结束索引来调用该方法.要删除最后一行,请使用:
textwidget.delete("end-1c linestart", "end")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5788 次 |
| 最近记录: |