如果要获取特定数量的字符,可以在索引上使用修饰符。例如,要获取第 1 行的前 30 个字符,您可以使用类似self.windowIn.get('1.0', '1.0+30c')
文本小部件还具有“显示线”的概念。显示线代表您所看到的,考虑到小部件完成的包装。如果有 60 个字符宽的行并且文本以 30 个字符换行,则可以使用display
子修饰符获取显示行上的所有字符,而不是整行。
例如,考虑一个看起来像这样的小部件,其中一行包含 30 个字符(即:数据中没有换行符):
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
索引1.0 display lineend
与 相同1.29
,因为这是第 30 个字符的索引。
当您为该get
方法提供第二个索引时,它会返回该索引之前的所有字符,但不包括该索引处的字符。因此,在获取显示行时,您需要将一个字符添加到结束索引以捕获最后一个字符。
因此,将所有这些放在一起,您可以使用以下命令获取第一显示行上的所有文本:
self.windowIn.get("1.0", "1.0 display lineend +1c").
有关文本小部件索引的规范描述,请参阅此处的官方 tcl/tk 文档:http: //tcl.tk/man/tcl8.5/TkCmd/text.htm#M7