如何从字符串中的第一个字符获取所选文本的位置。当我做
ind = textwidget.index("self.first")
Run Code Online (Sandbox Code Playgroud)
我只得到索引为 line.column。我想要的是从第一个字符开始的字符数。这样做的动机是我不必打扰在 UI 中进行格式化的方式,这会导致行数(以及字符串中的换行符)。
是否可以 ?
文本小部件有一个名为的方法count,该方法将为您提供两个位置之间字符数的计数。此方法适用于python3,但不适用于python2。但是,python2 有一个简单的修复方法。
对于python3,要获取小部件开头和第一个选定字符之间的字符数,您可以执行以下操作:
count = textwidget.count("1.0", "sel.first")
Run Code Online (Sandbox Code Playgroud)
对于 python2,您必须调用底层 tcl 解释器,因为文本小部件未公开该方法。假设您的根小部件名为root,您可以这样做:
count = root.call(textwidget, "count", "1.0", "sel.first")
Run Code Online (Sandbox Code Playgroud)
该count方法有多种选择。例如,可以统计像素数,可以包含或排除隐藏线等。 底层tcl/tk引擎支持的选项的最终列表参见http://tcl.tk/man/tcl8.5 /TkCmd/text.htm#M72
| 归档时间: |
|
| 查看次数: |
3592 次 |
| 最近记录: |