【发布时间】:2011-03-14 00:48:28
【问题描述】:
是否可以在 Tkinter Text 小部件中设置光标位置?我还没有发现任何非常有用的东西。
我能做的最好的事情是在某个 x-y 坐标处发出 <Button-1> 和 <ButtonRelease-1> 事件,但这是一个像素数量,而不是字母数量。
【问题讨论】:
标签: python tkinter cursor-position
是否可以在 Tkinter Text 小部件中设置光标位置?我还没有发现任何非常有用的东西。
我能做的最好的事情是在某个 x-y 坐标处发出 <Button-1> 和 <ButtonRelease-1> 事件,但这是一个像素数量,而不是字母数量。
【问题讨论】:
标签: python tkinter cursor-position
如果“text”、“line”和“column”是您的文本对象,则所需的文本行和所需的列变量分别是:
text.mark_set("insert", "%d.%d" % (line + 1, column + 1))
如果您不想关心行号...好吧,您必须这样做。
The Tkinter Text Widget 上的完整文档。
【讨论】:
text.index("insert")
effbot.org 链接已经断开很长时间了。 :(
要设置光标位置,您可以使用text_widget.mark_set 方法,使用"insert"(或Tkinter.INSERT 表示“常量”)第一个参数,第二个参数是多种形式之一,最有用存在:
"%d,%d" % (line, column),其中行从 1 开始,列从 0 开始"1.0+%d chars" % index,其中索引是从 0 开始的,就像 Python 中的字符串/unicode 索引一样要获取某个标记的索引,可以使用text_widget.index方法:
text_widget.index(Tkinter.INSERT)
【讨论】:
此属性仅适用于 Text Widget,因为我们可以使用 Entry Widget:
entry_widget_name.icursor("position")
对于文本小部件将是:
text_widget_name.mark_set("insert", "%d.%d" % (x,y))
其中 x = 行位置 y = 列位置
(例如使用带点的整数,例如 1.0 或 3.0)
【讨论】: