Tkinter文本整数转换为文本索引

3
有没有一种方法可以将整数转换为有效的Tkinter文本窗口位置。例如,0会被更改为'1.0',如果第1行上没有字符,1将进入'2.0'。我知道小部件的index方法,但仅用于获取光标位置(如果这就是答案)。
非常感谢。
编辑
我相信(现在对此事进行了更多研究),Tk Text小部件会懒惰加载文本(以提高性能)。因此,如果不获取整个文本内容并对其执行字符串操作,则我认为这是不可能的(Tk Text只稍微了解当前查看的文本上方和下方的情况-因此,当垂直滚动时,水平滚动条将不断调整)。

如果第一行没有字符,就不可能有“2.0”。唯一可能出现“2.0”的情况是第一行有一个换行符。 - Bryan Oakley
让我们选择一个随机整数。例如,“13”。那应该返回哪个文本小部件位置?你是在询问如何计算第N个字符的索引(即:“13”表示第13个字符)吗? - Bryan Oakley
不行,那你能否(使用代码获取行长度)为整数获取文本索引(另外,抱歉我指的是换行符)。 - Minion Jim
我仍然不知道你所说的“为整数获取文本索引”的意思。13是一个整数。你希望从中得到什么索引? - Bryan Oakley
所以,如果我调用text.get(0,10)是不行的,因为它需要像text.get("1.0","2.5")这样的东西。 - Minion Jim
显示剩余2条评论
1个回答

5
文本小部件支持许多修改器来操作索引。例如,您可以通过添加或减去字符或行来计算新的索引。例如,如果您想在第2行获取前10个字符,则可以使用"2.0 + 10 chars"(或更紧凑的"2.0+10c")。如果您想要文本小部件中的第100个字符,可以使用"1.0+100c"等。
除了字符之外,您还可以添加或减去行(例如:"end-1line"),并且您可以获取单词或行的开头或结尾(例如:"end-1c linestart"表示小部件中最后一行的第一个字符)。
您可以在Tcl/Tk官方文档中了解有关索引的所有形式:http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接